Spring-MVC:JSP
View 将一系列值发送到 Controller ,而不是单击按钮的一个值

2020年11月30日 57点热度 0条评论

<form name="update" id="update" action="update" method="post">
<table border="0">
<tr>
<th></th>
<th>Del</th>
<th>Name</th>
<th>Address</th>
<th>Remarks</th>
</tr>

<c:forEach items="${recList}" var="rec" varStatus="loop">
<tr>
<td><input type="checkbox" name="del" value="${loop.index}"/></td>
<td><input type="text" name="name" value="${rec.getName()}"/></td>
<td><input type="text" name="address" value="${rec.getAddress()}"/></td>
<td><input type="text" name="remarks" value="${rec.getRemarks()}"/></td>
<td><input type="hidden" name="index" value="${loop.index}"/>
<input type="submit" value="Update"/></td>
</tr>
</c:forEach>

</table>
</form>

这是我针对此视图的代码

我的问题是,当我单击“更新”按钮时,表单似乎发送了一系列值,例如

name= "aiko,hashimoto,yuki,ode"

而不是只发送

name="hashimoto"

如果单击第二个“更新”按钮,则返回到控制器。谁能帮我解决我的问题?


<form>标记不能位于
<table>内。从逻辑上讲,我认为最好将内部放入循环中,但这是不可能的。还有另一种解决方法吗?

解决方案如下:

    Submit your form with javascript function using ajax call like below sample code.
    send single value from form submit not possible 

    function submitform(){

         var messageId = $("#messageId").val();
        $.ajax({
            url:'<c:url value="/dummy/dummyMessageId"/>',
            datatype:'JSON',    
            data: 'messageId=' + messageId ,
            success : function(response) {
            if (null != response && response.success) {      
              } else {
                    var errorDiv = $('#Error');
                    errorDiv.html(response.error.message);
                    }
                }               
        });
    }
    <input type="button" value="Update" onclick="submitform()"/></td> 
   add above code  in your HTML input button