Struts 2のparamタグの例
ダウンロードする – リンク://wp-content/uploads/2010/07/Struts2-Param-Tag-Example.zip[Struts2-Param-Tag-Example.zip]
Struts 2 ”
param
“タグは、他のタグをパラメータ化するために使用されます。ただし、 ”
param
“タグを宣言した場合、 ”
パラメータ値
“は次の2つの方法で定義できます。
-
”
value
“属性. -
”
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>
