ダウンロードする – リンク://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;
    }
   //...
}