如何使用Struts2和Jquery预填充复选框?

时间:2010-08-30 18:00:56

标签: struts2

我正在尝试确定预填充使用Struts2表单标记创建的某些复选框的最佳/最简单方法。我的应用程序是一个“正常”的三层设置,在控制器层使用Struts2。

在我真正深入挖掘之前,标签是否支持创建所有可能的复选框列表,然后填充它(例如,通过以下操作)?

示例动作:

public class UserManagementAction extends ActionSupport implements Preparable {

    private List<String> allRoles;
    private List<String> rolesToPrepopulate;

    // get/set methods

    public void prepare() throws Exception {
       // populate the allRoles and rolesToPrepopulate lists
    }

    public String execute() throws Exception {
        return INPUT;
    }

(注意:假设struts.xml已经配置了为INPUT返回的JSP)

感谢您的帮助。

杰森

1 个答案:

答案 0 :(得分:1)

我要做的是一个新的对象类,并将其用作复选框。

例如:

public class StrutsCheckbox {
    private Integer id;
    private Boolean selected;
...
}

prepare()方法中,您可以根据需要设置selected字段(以及id所有字段)。

接下来在JSP中:

<s:iterator value="allRoles">
    <s:checkbox name="selected" id="selected" fieldValue="%{id}" value="%{selected}"/>
</s:iterator>

然后在提交操作中,选择的集合将填充ID。

public class UserManagementAction extends ActionSupport implements Preparable {

    private List<StrutsCheckbox> allRoles;
    private List<StrutsCheckbox> rolesToPrepopulate;
    private List<Integer> selectedCheckboxes;

    // get/set methods

    public void prepare() throws Exception {
       // populate the allRoles and rolesToPrepopulate lists
       // fill and set allRoles and/or rolesToPrepopulate
    }

    public String execute() throws Exception {
        return INPUT;
    }

    public String submit() throws Exception {
        // list selectedCheckboxes is filled with selected fields id's 
        return INPUT;
    }

也许有一些更正可以,但主要的想法就在这里。