无法从复选框中获取多个值

时间:2012-05-24 07:47:57

标签: spring jsp checkbox

我正在尝试从jsp页面访问多个复选框值..但我最终会得到错误的绑定..

jsp页面:

<c:forEach items="${employees}" var="employee">
                    <tr>
                         <td><spring:checkbox path="selectedMails" value="<c:out value='${employee.emailid}'/>"/> </td> 
                        <td><spring:label path="employeeId">${employee.employeeId}</spring:label></td>
                        <td><spring:label path="employeeName">${employee.employeeName}</spring:label></td>
                        <td><spring:label path="emailid" >${employee.emailid}</spring:label></td>
                        <td><spring:label path="reportmanager">${employee.reportmanager}</spring:label></td>

                    </tr>
                </c:forEach>

到页面

//Invitation Beans
    private String [] selectedMails;

    public String [] getSelectedMails() {
        return selectedMails;
    }
    public void setSelectedMails(String [] selectedMails) {
        this.selectedMails = selectedMails;
    }

我可以在jsp页面上打印${employee.emailid} ..但我无法取回,我需要保存多个值..请帮帮我

2 个答案:

答案 0 :(得分:1)

要获得多个值,您应该拥有多个具有相同名称的复选框。在这种情况下,它将作为数组放入请求中,您可以将此值作为数组。

如果您有单个复选框 - 您将获得单个值。如果未选中复选框,则根本没有值。如果未选中复选框,则不会为请求添加任何值。

答案 1 :(得分:1)

您应该在您创建的每个复选框的路径属性中给出arrayindex。

您需要在jsp代码中进行更改。

<c:forEach items="${employees}" var="employee" varStatus="cnt">
    <tr> 
        <td><spring:checkbox path="selectedMails[${cnt.index}]" value="<c:out value='${employee.emailid}'/>"/> </td>  
        <td><spring:label path="employeeId">${employee.employeeId}</spring:label></td> 
        <td><spring:label path="employeeName">${employee.employeeName}</spring:label></td> 
        <td><spring:label path="emailid" >${employee.emailid}</spring:label></td> 
        <td><spring:label path="reportmanager">${employee.reportmanager}</spring:label></td> 
    </tr> 
</c:forEach> 

我认为这应该适合你。

希望这会对你有所帮助。

干杯。