Struts 2 – Actionクラスの静的パラメーターの構成
場合によっては、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;
}
//...
}