2010-08-30 57 views
0

我想確定預先填充使用Struts2表單標籤創建的某些複選框的最佳/最簡單的方法。我的應用程序是一個「正常」三層設置,在控制器層使用Struts2。如何使用Struts2和Jquery預填充複選框?

在我真的深入這裏之前,標籤是否支持創建所有可能的複選框列表,然後填充它(例如,通過下面的操作)?

樣的行動:

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中已經配置與JSP返回輸入)的任何幫助

感謝。

Jason

回答

1

我會做的是一個新的對象類,並將它用作複選框。

例如:

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

而且在prepare()方法,如你所願(也id到所有的人),你可以設置selected場。

下一頁在JSP:

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

然後在提交選擇將充滿IDS行動集合。

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

也許有一些更正它會工作,但主要想法在這裏。