Spring Mvc提交/删除表中的已检查(选定)记录 [英] Spring Mvc submit/delete checked (selected) records from table

查看:147
本文介绍了Spring Mvc提交/删除表中的已检查(选定)记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从表中提交所选项目并对它们进行一些修改,但我无法正常工作。

I'm trying to submit selected items from a table and moake some modifications on them but I couldn't get it work.

MyObject.java

MyObject.java

public class MyObject{
    boolean checkControl = true; //default true
    private String name;
    private String code; 

    //getters & setters
}

MyObjectForm.java

MyObjectForm.java

public class MyObjectForm {
    private List<MyObject> myList;

    public List<MyObject> getMyList() {
        return myList;
    }

    public void setMyList(List<MyObject> myList) {
        this.myList= myList;
    }
}

list-myObjects.jsp

list-myObjects.jsp

<form:form action="submitList" method="post" modelAttribute="myObjectForm">
    <table>
        <tbody>
            <c:forEach items="${myObjectForm.myList}" var="row" varStatus="status">
        <tr>
                <td>
                    <spring:bind path="myList[${status.index}].checkControl">
                    <input type="checkbox" value="<c:out value="${status.value}"/>" name="isChecked" <c:if test="${row.checkControl}"> checked="checked" </c:if> />
                    </spring:bind>
                    </td>
                    <td>${row.name}</td>
                    <td>${row.code}</td>
            </tr>
        </c:forEach>
        </tbody>
    </table>  
    <button type="submit">Submit</button>
</form:form>

控制器

@RequestMapping(value = "/submitList", method = RequestMethod.POST)
public String save(@ModelAttribute("myObjectForm") MyObjectForm myObjectForm, Model model) {

    List<MyObject> selectedtList = myObjectForm.getMyList(); //returns null

    if (selectedtList == null) {
        System.out.println("no objects selected");
    }
    else {
        //Make some computation
    }
    model.addAttribute("resultArray", selectedtList);

    return "display-items";
}


推荐答案

听起来像是一个约束性问题。您是否尝试使用Spring的< form:checkbox> 标记而不是< spring:bind> ?它将自动生成复选框属性,并添加一个隐藏字段,Spring使用该字段来确定复选框是开还是关。

Sounds like a binding issue. Have you tried using Spring's <form:checkbox> tag rather than <spring:bind>? It will automatically generate the checkbox attributes as well as adding a hidden field that Spring uses to determine whether the checkbox is 'on' or 'off'.

<form:form action="submitList" method="post" modelAttribute="myObjectForm">
    <table>
        <tbody>
            <c:forEach items="${myObjectForm.myList}" var="row" varStatus="status">
        <tr>
                <td>
                    <form:checkbox path="myList[${status.index}].checkControl"/>
                    </td>
                    <td>${row.name}</td>
                    <td>${row.code}</td>
            </tr>
        </c:forEach>
        </tbody>
    </table>  
    <button type="submit">Submit</button>
</form:form>

这篇关于Spring Mvc提交/删除表中的已检查(选定)记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆