Javascript 表单提交时的spring控制器调用

Javascript 表单提交时的spring控制器调用,javascript,jquery,ajax,jsp,spring-mvc,Javascript,Jquery,Ajax,Jsp,Spring Mvc,我是一名初学者,在使用SpringMVC和ajax时面临以下问题。 我的jsp页面中有一个包含数量字段的行表。 最初的行为是每当用户更新quantity字段并从该字段中弹出一个jsp表单时,该表单只提交焦点行中的值。表单操作绑定到控制器方法。因此,表单提交上的错误或成功是通过控制器方法显示的。此控制器方法具有所选行的请求参数 因此,本质上一次只验证一行 jsp页面上有一个更新按钮。现在需要在单击更新按钮时立即验证所有行。 因此,应立即显示所有错误/成功消息 点击按钮,我将遍历所有数量字段,并通过

我是一名初学者,在使用SpringMVC和ajax时面临以下问题。 我的jsp页面中有一个包含数量字段的行表。 最初的行为是每当用户更新quantity字段并从该字段中弹出一个jsp表单时,该表单只提交焦点行中的值。表单操作绑定到控制器方法。因此,表单提交上的错误或成功是通过控制器方法显示的。此控制器方法具有所选行的请求参数

因此,本质上一次只验证一行

jsp页面上有一个更新按钮。现在需要在单击更新按钮时立即验证所有行。 因此,应立即显示所有错误/成功消息

点击按钮,我将遍历所有数量字段,并通过ajax提交表单。所有值都已正确更新。但是,控制器显示的错误/成功消息不再显示

jsp页面- 表单的操作=更新,方法=发布。 输入-数量和所选行

控制器-方法-使用所选行的请求参数将请求映射到上述操作。 -显示错误/成功消息。 -更新有效输入的数量。 -最后重定向到同一页

javascript- 在“更新”按钮上,单击- 对于通过行索引和数量并通过ajax post提交表单的每个数量字段。。ajaxsuccess和error方法当前为空,因为我希望通过控制器显示错误。 如果我使用form.submit而不是ajax,那么它只会更新最后一行

我不想干扰控制器的现有功能,因为它可能会在其他页面中使用。 请建议

JSP
….
//table with prd_qty input field
 <button type="submit" id="updateButton">Update</button>
….. . .
 <form action=“../update” id=“updateQtyForm” autocomplete="off" method="post">
     <input type="hidden" name="selectedRow"/>
     <input type="hidden" name=“qty”/>
 </form>
Controller
@RequestMapping(value = "/update", method = RequestMethod.POST)
    public String updateQty(@RequestParam(“selectedRow”) final long selectedRow, final Model model,@Valid final UpdateQtyForm form, final BindingResult bindingResult, final HttpServletRequest request, final RedirectAttributes redirectModel) throws Exception{
    //validation and displays error messages based on bindingResult
    return “/products”
}
@RequestMapping(value = "/products",  method = { RequestMethod.GET, RequestMethod.POST })
    public String showProducts(final Model model) throws Exception
    {..return <same page>;}
Script
$('#updateButton').click(function(e) {
    var form=$(“#updateQtyForm");
    var data;
    $('input[id^=“prd_qty"]').each(function() {
        var index=$(this).attr("id").split("_")[1];         
        var qty=$(this).val();  
        form.find('input[name=selectedRow]').val(index);
        form.find('input[name=qty]’).val(qty);          
         data =  $.ajax({
                url     : form.attr("action"),
                type    : form.attr("method"),
                data    : form.serialize(),
                success : function ( data ) {   },
                error   : function (  ) { }
            }) 
});
JSP
….
//带有prd_数量输入字段的表格
更新
….. . .
控制器
@RequestMapping(value=“/update”,method=RequestMethod.POST)
公共字符串updateQty(@RequestParam(“selectedRow”)final long selectedRow,final Model Model,@Valid final UpdateQtyForm form form,final BindingResult BindingResult,final HttpServletRequest,final RedirectAttributes redirectModel)引发异常{
//验证并根据bindingResult显示错误消息
退货“/产品”
}
@RequestMapping(value=“/products”,method={RequestMethod.GET,RequestMethod.POST})
公共字符串showProducts(最终模型)引发异常
{..return;}
剧本
$(“#更新按钮”)。单击(函数(e){
var form=$(“#updateQtyForm”);
var数据;
$('input[id^=“prd_qty”]”)。每个(函数(){
var索引=$(this.attr(“id”).split(“”)[1];
变量数量=$(this.val();
form.find('input[name=selectedRow]').val(index);
form.find('输入[名称=数量]).val(数量);
数据=$.ajax({
url:form.attr(“操作”),
类型:form.attr(“方法”),
数据:form.serialize(),
成功:函数(数据){},
错误:函数(){}
}) 
});

你能用你的代码(essentials parts)更新吗?像我现在在你的帖子中编辑的那样更新代码。这样任何人都可以轻松理解你的代码。并从评论中删除代码。你在ajax成功和错误函数中做了什么?