spring+springmvc+hibernate整合后,form表单传值问题

页面代码:(绿色背景的代码为关键代码)

 


      

           
    
 
 
     

              
         
                 
             <%--
                 
                  --%>

     

 

js: (表单用ajax的post请求提交
$("#adpar").click(function(){    
        $.post("addPar",$("#addpar").serialize(),function(data){
            $("#cgadd").show();
            
            layer.msg("添加成功",{
            time:1000,
            icon:1        
            });
            
             $("#suId").val(data.sId);
            $("#tim").val(data.time);
            $("#par").val(data.pId);

        });
    });

后台:

@RequestMapping("/addPar")
    public ModelAndView addPar(HttpServletRequest request,HttpSession session,Model model,@ModelAttribute("time") String time,@ModelAttribute("supplyId") String supplyId){
        System.out.println("time:"+time+" "+"supplyId: "+supplyId);
        String Id=request.getParameter("suId");
        
        //获得供应商信息
        List supplier=supplyService.getAll();
        
        Parchase parchase=new Parchase();
        
        //获得采购表 最大id并++
        String parchaseId=idUtil.parchaseId(parchaseService.getMaxId());
        System.out.println("parchaseId: "+parchaseId);
        //获得当前用户 id 即当前默认的采购员
        String userId=(String) session.getAttribute("userId");
        //设置采购人员
        User user=userService.getUserById(userId);
        //设置供应商
        Supply supply=supplyService.getById(supplyId);
        
        parchase.setDate(time);
        parchase.setStatus("处理中");
        parchase.setSupplier(supply);  //供应商
        parchase.setUser(user);       //采购人
        parchase.setParchaseId(parchaseId);
        parchaseService.addParchase(parchase);
        model.addAttribute("sId", supplyId);
        model.addAttribute("time", time);
        model.addAttribute("pId",parchaseId );
        model.addAttribute("su", supplier);    
        model.addAttribute("Id", Id);
        View view = new MappingJacksonJsonView();
        ModelAndView mav=new ModelAndView(view);
        return mav;
    }
   

问题:当页面向后台提交时,form表单的值,毫无疑问全部被提交。当返回页面时,这些值会直接返回到发起 ajax 请求的地方,淡蓝色背景的代码,是把返回值直接赋值给页面元素,这样是是行得通的。但是,表单里的元素直接取得后台返回值(没有经过ajaxd的返回元素 data),这样也是对的,当我在这个表单中添加其他元素(这些元素的值没有被提交到后台)并用同样方法赋值时问题出现了,根本无法赋值;然后我把这些元素的值也提交到后台,再从后台返回,取值,然后就可以得到值了。(红色代码部分时没有提交到后台的元素,可通过,蓝色代码部分 方式复制,也可以把它传到后台,在从页面取值)

你可能感兴趣的:(spring+springmvc+hibernate整合后,form表单传值问题)