提交请求控件总是拿起GET方法而不是POST

时间:2017-03-17 09:22:49

标签: java spring hibernate tiles

我正在尝试使用spring3 hibernate3和tiles2。

   @RequestMapping(value = "/capturedetails", method = RequestMethod.GET)
   public String getcapturedetails(Model model, HttpSession session,
                 HttpServletRequest request) {

Customer customer=new Customer();
          model.addAttribute("customer", customer);
          return "capturedetails";
   }

   @RequestMapping(value = "/capturedetails", method = RequestMethod.POST)
   public String addcustomer(
                 @ModelAttribute("Customer") Customer customer, Model model,
                 HttpSession session, HttpServletRequest request) {

                       custBarcodeService.saveCustomer(customer);

                       model.addAttribute("customer ", new Customer());
                       return "capturedetails";
   }

提交请求控件后,它总是选择GET方法而不是POST ... 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

过去我遇到过类似的问题。在我的情况下,我试图从邮递员发出POST请求,其中json正文到端点,该端点在控制器端接收x-www-form-urlencoded格式的数据。

请注意,如果您在帖子控制器方法中使用@ModelAttribute,则会以x-www-form-urlencoded格式接收数据。如果是这种情况,那么可能的解决方案就是

  1. 使用json使帖子请求方法接收@RequestBody数据:

    @RequestMapping(value = "/capturedetails", method = RequestMethod.POST)
    public String addcustomer(@RequestBody Customer customer, Model model,
             HttpSession session, HttpServletRequest request) {
    
                   custBarcodeService.saveCustomer(customer);
    
                   model.addAttribute("customer ", new Customer());
                   return "capturedetails";
    }
    
  2. 从其他客户端以x-www-form-urlencode格式发送数据

答案 1 :(得分:0)

我认为你可能有多个表单元素打开...检查你的图块布局文件并删除多个表单元素,然后尝试发布。 因为同样的解决方案也解决了我的问题。