Struts 2 - Actionクラスの静的パラメータを設定する

Struts 2 – Actionクラスの静的パラメーターの構成

ダウンロード–Struts-Action-Static-ParamExample.zip

場合によっては、Actionクラスに事前定義または静的なパラメーター値を割り当てる必要があります。

アクションの静的パラメーターを定義しました

Struts 2では、<param>タグを介して、struts.xmlファイルで構成できます。たとえば、

struts.xml



   
   

   
    
        pages/welcome.jsp
        English
                Chinese
                France
    
   

3つの事前定義されたパラメータ値をLocaleActionアクションクラスに割り当てます。

アクションから静的パラメーターを取得する

struts.xmlから静的パラメーター値を取得するには、ActionクラスでParameterizableインターフェースを実装する必要があります。 また、Map propertyまたはJavaBeanプロパティを使用してアクセスできます。

アクションの静的パラメータは、デフォルトのスタック「struts-default.xml」に含まれているstaticParams Interceptorによって制御されます。

1. 地図のプロパティ

アクションクラスの初期化中に、staticParams Interceptorは、setParams()メソッドを介して、事前定義されたパラメータ値の参照をアクションのクラスに渡します。

//...
import com.opensymphony.xwork2.config.entities.Parameterizable;

public class LocaleAction implements Parameterizable{

    Map params;
    //...
    public void setParams(Map params) {
        this.params = params;
    }
}

2. JavaBeanプロパティ

Actionクラスの初期化中に、getterおよびsetterメソッドを適切に作成した場合、staticParams Interceptorは、「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;
    }
    //...
}