Struts 2 - настроить статический параметр для класса Action

Struts 2 - настройка статического параметра для класса Action

Скачать -Struts-Action-Static-ParamExample.zip

В некоторых случаях вам может потребоваться назначить некоторые заранее определенные или статические значения параметров для класса Action.

Определен статический параметр для действия

В Struts 2 вы можете настроить его в файлеstruts.xml через тег<param>, например,

struts.xml



   
   

   
    
        pages/welcome.jsp
        English
                Chinese
                France
    
   

он присваивает классу действияLocaleAction три предопределенных значения параметра.

Получить статический параметр из Action

Чтобы получить значения статических параметров изstruts.xml, класс Action должен реализовать интерфейсParameterizable. И доступ к нему может быть либо с помощью свойстваMap property, либоJavaBean.

Статические параметры действия контролируютсяstaticParams Interceptor, который включен в стек по умолчанию struts-default.xml.

1. Карта недвижимости

Во время инициализации класса Action, staticParams Interceptor передает ссылку на заранее определенные значения параметров классу Action через метод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 установит предварительно определенные значения параметров для каждого свойства JavaBean, которое соответствует элементам «param».

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