表单提交,不正确调用弹簧控制器

时间:2014-03-12 08:15:11

标签: java jquery spring

我在Spring mvc中使用jquery提交表单。

这是提交表单的jquery调用。

    function uploadJqueryFormForEdit(documentId){
    alert("ccc");
    $('#result').html('');

   $("#editDocumentForm").ajaxForm({
    success:function(data) { 
        alert("ddd");
          $('#result').html(data);
          alert("eee");
          //getProjectSegment('documents','DocumentSegment',projectId);
            $('#editDocumentForm').remove();
     },
     error:function(e){ 
            alert(e.responseText);
            $("#msgDiv").html('Error');
        },   
     dataType:"text"
   }).submit();
}

这是我要提交的表格。

<form action="cont/uploadEdit?documentId=15&projectId=2" name="editDocumentForm" id="editDocumentForm" enctype="multipart/form-data" method="post">

当我在动作网址中使用一个参数时,例如。

action="cont/uploadEdit?documentId=15"

它工作正常。但是当我使用两个参数

action="cont/uploadEdit?documentId=15&projectId=2"

它没有正确调用控制器方法(根本没有点击该方法)

这是控制器方法

 @RequestMapping(value = "cont/uploadEdit", method = RequestMethod.POST)
       public @ResponseBody String uploadEdit(@ModelAttribute("sessionId") String sessionId,@RequestParam("documentId") int documentId,@RequestParam("projectId") int projectId,MultipartHttpServletRequest request, HttpServletResponse response, UploadedFile fileDetail,UserBean userbean,Model model) throws SessionException { 
           logger.info("uploadEdit");

}

为什么我不能在动作标签中使用两个参数。?

这是第一个动作

的控制器方法
 @RequestMapping(value = "cont/uploadEdit", method = RequestMethod.POST)
       public @ResponseBody String uploadEdit(@ModelAttribute("sessionId") String sessionId,@RequestParam("documentId") int documentId,MultipartHttpServletRequest request, HttpServletResponse response, UploadedFile fileDetail,UserBean userbean,Model model) throws SessionException { 
           logger.info("uploadEdit");
}

2 个答案:

答案 0 :(得分:0)

params = {"documentId", "projectId"}属性添加到R​​equestMapping注释

  @RequestMapping(value = "cont/uploadEdit", params = {"documentId", "projectId"}, method = RequestMethod.POST)
           public @ResponseBody String uploadEdit(@ModelAttribute("sessionId") String sessionId,@RequestParam("documentId") int documentId,@RequestParam("projectId") int projectId,MultipartHttpServletRequest request, HttpServletResponse response, UploadedFile fileDetail,UserBean userbean,Model model) throws SessionException { 
               logger.info("uploadEdit");

答案 1 :(得分:0)

发现错误:

在我们要提交的表单中(在我的情况下&#34; editDocumentForm&#34;),应该没有任何其他输入标记与action url变量中的名称相同,

例如,如果有这样的事情,

<input type="hidden" id="projectId" name="projectId" value="somevalue"/>
它会产生冲突。因此,请确保不会发生冲突。