Struts 2 – Actionクラスの静的パラメータを設定する
ダウンロードする – リンク://wp-content/uploads/2010/06/Struts-Action-Static-ParamExample.zip[Struts-Action-Static-ParamExample.zip]
場合によっては、Actionクラスにあらかじめ定義されたパラメータ値または静的なパラメータ値を割り当てる必要があります。
アクションの静的パラメータを定義しました.
Struts 2では、
struts.xml
ファイルで、
<param>
タグを使用して設定できます。たとえば、
<struts>
<constant name="struts.custom.i18n.resources" value="global"/>
<constant name="struts.devMode" value="true"/>
<package name="default" namespace="/" extends="struts-default">
<action name="locale" class="com.mkyong.common.action.LocaleAction">
<result name="SUCCESS">pages/welcome.jsp</result>
<param name="EnglishParam">English</param>
<param name="ChineseParam">Chinese</param>
<param name="FranceParam">France</param>
</action>
</package>
</struts>
-
LocaleAction ** Actionクラスに3つの事前定義されたパラメータ値を割り当てます。
Actionから静的パラメータを取得する
-
struts.xml
から静的パラメータ値を取得するには、Actionクラスが
Parameterizable
インタフェースを実装する必要があります。また、
Mapプロパティ
または
JavaBean ** プロパティのいずれかでアクセスできます。
アクションの静的パラメータは、デフォルトのスタック “struts-default.xml”に含まれている
staticParamsインターセプタ
によって制御されます。
1.マッププロパティ
Actionクラスの初期化中、staticParamsインターセプタは、
setParams()
メソッドを介して、アクションのクラスにあらかじめ定義されたパラメータ値の参照を渡します。
….//…
import com.opensymphony.xwork2.config.entities.Parameterizable;
public class LocaleAction implements Parameterizable{
Map<String, String> params;
//...
public void setParams(Map<String, String> params) {
this.params = params;
}
}
=== 2. JavaBeanプロパティ
Actionクラスの初期化中に、getterメソッドとsetterメソッドを適切に作成した場合、staticParamsインターセプタは事前定義されたパラメータ値を、「param」要素に対応する各JavaBeanプロパティに設定します。
....//...
import com.opensymphony.xwork2.config.entities.Parameterizable;
public class LocaleAction implements Parameterizable{
String englishParam;
String chineseParam;
String franceParam;
public String getEnglishParam() {
return englishParam;
}
public void setEnglishParam(String englishParam) {
this.englishParam = englishParam;
}
public String getChineseParam() {
return chineseParam;
}
public void setChineseParam(String chineseParam) {
this.chineseParam = chineseParam;
}
public String getFranceParam() {
return franceParam;
}
public void setFranceParam(String franceParam) {
this.franceParam = franceParam;
}
//...
}