Struts2多选列表:如何在动作类中获取值

时间:2012-10-24 20:03:37

标签: struts2 multi-select

我是Struts2的新手,使用多选标签。我在很多地方搜索过但未能得到解决方案。这是我的问题:

在JSP中,我使用了struts2 select tag这样的

<s:form action="AjaxSaveSelectedStatus">
   <s:select label="Select Status" name="masterStatusLists" id="masterStatusLists" 
      list="#{'1':'status1','2':'status2','3':'status3','4':'status4'}" 
      multiple="true" required="true"/>
   <input type="submit" value="Save"/>
</s:form>

在struts.xml映射中

<action name="Ajax*" class="com.mypackage.actions.forms.Ajax{1}">
        <result name="redirect">${redirectUrl}</result>
    </action>

在Action类我使用过这样的

public class AjaxSaveSelectedStatus extends BaseAjaxActionWithSession {
ArrayList<MasterStatusList> masterStatusLists;

@Override
public String execute(){

    for (MasterStatusList masterStatusList : masterStatusLists) {
        System.out.println(masterStatusList.getStatusId());
    }
    return SUCCESS;
}
public ArrayList<MasterStatusList> getMasterStatusLists() {
    return masterStatusLists;
}

public void setMasterStatusLists(ArrayList<MasterStatusList> masterStatusLists) {
    this.masterStatusLists = masterStatusLists;
}
}

这是MasterStatusList Bean类

public class MasterStatusList implements java.io.Serializable {
   private int statusId;
   private String statusName;
   public MasterStatusList() {}
   public int getStatusId() {return this.statusId;}
   public void setStatusId(int statusId) {this.statusId = statusId;}
   public String getStatusName() {return this.statusName;}
   public void setStatusName(String statusName) {this.statusName = statusName;}
}

现在我想在客户端获取所选项目的列表。

1 个答案:

答案 0 :(得分:3)

多选标记提交的值将是字符串的List(或csv的数组或字符串)(在您的情况下为整数1,2,3 ..)。 因此,在您的操作类

中声明整数列表
List<Integer> masterStatusLists; //and its getter/setter

这必须解决问题