開発者ドキュメント

Struts 2のparamタグの例

ダウンロードする – リンク://wp-content/uploads/2010/07/Struts2-Param-Tag-Example.zip[Struts2-Param-Tag-Example.zip]

Struts 2 ”

param

“タグは、他のタグをパラメータ化するために使用されます。ただし、 ”

param

“タグを宣言した場合、 ”

パラメータ値

“は次の2つの方法で定義できます。



  1. value

    “属性.



  2. param

    “タグの先頭と最後の間のテキスト.

例えば、

<param name="fruit">Banana</param>  {Case 1}
<param name="fruit" value="Banana"/> {Case 2}

Struts 2では、どちらも全く異なる意味を持ちます。 “ケース1″では、値は

java.lang.String

オブジェクトとみなされます。 “ケース2″の間、値は

java.lang.Object

オブジェクトと見なされます。

上記のステートメントは、いくつかの例を使って最もよく説明されています。

例1



param

“タグを使用してBeanプロパティに ”

String

“値を設定すると、このように宣言する必要があります

<s:bean name="com.mkyong.common.Person" var="personBean">
    <s:param name="nickName">mkyong</s:param>
</s:bean>

ない

<s:bean name="com.mkyong.common.Person" var="personBean">
    <s:param name="nickName" value="mkyong"></s:param>
</s:bean>



value

“属性の中で ”

String

“の値を宣言した場合、Struts 2はそれを無視します。

例2

このように宣言された ”

param

“タグを介して

java.lang.Object

オブジェクトをBeanプロパティに設定する

<s:bean name="com.mkyong.common.Fruit" var="fruitBean">
    <s:param name="fruitName">Banana</s:param>
</s:bean>

<s:bean name="com.mkyong.common.Person" var="personBean">
    <s:param name="favorFruit" value="#fruitBean"></s:param>
</s:bean>

例3

プリミティブ型の場合、自由にどこにでも宣言することができます。魅力的に機能します。

<s:bean name="com.mkyong.common.Person" var="personBean">
    <s:param name="age" value="99"></s:param>
</s:bean>//or
<s:bean name="com.mkyong.common.Person" var="personBean">
    <s:param name="age">99</s:param>
</s:bean>



param

“タグはBeanタグで利用できるだけでなく、パラメータ化が必要な他のほとんどすべてのタグに適用されます。

Struts 2の ”

param

“タグは本当に混乱しやすいタグなので、多くの新しいStruts 2開発者がこの愚かなトラップに陥り、なぜ単純な “String”セッターメソッドが動作しないのか不思議です。 Struts 2チームが将来的にユーザーフレンドリーなタグを設計できることを願っています。

Struts 2のparamタグの例

完全なStruts 2 ”

param

“タグの例。

1.アクション

リクエストを転送するActionクラス。

package com.mkyong.common.action;

import com.opensymphony.xwork2.ActionSupport;

public class ParamTagAction extends ActionSupport{

    public String execute() {
        return SUCCESS;
    }

}

2.ビーンズ

2つのBeanは後で ”

param

“タグで初期化します。

  • Person.java **

package com.mkyong.common;

public class Person{

    private String nickName;
    private int age;
    private Fruit favorFruit;

    public String getNickName() {
        return nickName;
    }
    public void setNickName(String nickName) {
        this.nickName = nickName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public Fruit getFavorFruit() {
        return favorFruit;
    }
    public void setFavorFruit(Fruit favorFruit) {
        this.favorFruit = favorFruit;
    }

    public String getFruitName(){
        return this.favorFruit.getFruitName();
    }

}
  • Fruit.java **

package com.mkyong.common;

public class Fruit{

    private String fruitName;

    public String getFruitName() {
        return fruitName;
    }

    public void setFruitName(String fruitName) {
        this.fruitName = fruitName;
    }

}

3. paramタグの例



param

“タグの使用を示すJSPページ。

  • param.jsp **

<%@ taglib prefix="s" uri="/struts-tags" %>
 <html>
<head>
</head>

<body>
<h1>Struts 2 param tag example</h1>

<s:bean name="com.mkyong.common.Fruit" var="fruitBean">
    <s:param name="fruitName">Banana</s:param>
</s:bean>

<s:bean name="com.mkyong.common.Person" var="personBean">
    <s:param name="nickName">ah pig ah dog</s:param>
    <s:param name="age">99</s:param>
    <s:param name="favorFruit" value="#fruitBean"></s:param>
</s:bean>

<h2>PersonBean</h2>
<ol>
<li>NickName property : <s:property value="#personBean.nickName"/></li>
<li>Age property : <s:property value="#personBean.age"/></li>
<li>Fruit property : <s:property value="#personBean.fruitName"/></li>
</ol>
</body>
</html>

4. struts.xml

リンク〜

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true"/>
    <package name="default" namespace="/" extends="struts-default">

        <action name="paramTagAction"
            class="com.mkyong.common.action.ParamTagAction" >
            <result name="success">pages/param.jsp</result>
        </action>

    </package>
</struts>

リファレンス

ドキュメンテーション]

モバイルバージョンを終了