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; } //... }