2013-04-25 72 views
1

我将表单发送到服务器,一旦表单成功我想重定向到另一个页面,但是我想将值发送到具有GET请求的重定向页面。我没有得到的值传递:Spring MVC尝试从GET请求方法中获取参数重定向

错误 我得到一个HTTP 400错误的请求错误

代码

@RequestMapping(value = "crime_registration_save.htm", method = RequestMethod.POST) 
    public ModelAndView handleSave(@Valid @ModelAttribute Crime crime,BindingResult result, ModelMap m, Model model) throws Exception { 



     if (result.hasErrors()) { 

      logger.debug("Has Errors In crime_registration_save"); 
      model.addAttribute("dbcriminals", myCriminalList); 
      model.addAttribute("dbvictims", myVictimList); 
      model.addAttribute("status", myStatusList); 
      model.addAttribute("crimeCategory", myCrimeCategoryList); 
      model.addAttribute("crimeLevel", myCrimeLevelList); 
      model.addAttribute("officers", myOfficerList); 

      model.addAttribute("victimList", crime.getVictims()); 
      model.addAttribute("criminalList", crime.getCriminals()); 

      model.addAttribute("crimeTypeList", 
        crimeTypeManager.getCrimeTypeList(crime.getOffenceCatId())); 
      model.addAttribute("icon", "ui-icon ui-icon-circle-close"); 
      model.addAttribute("results", "Error: Unable to Save Record!"); 

      return new ModelAndView("crime_registration"); 
     } 
     logger.debug("No errors going to preform save"); 

     int crimeRecNo; 

     crimeRecNo = crimeManager.saveCrime(crime); 

     return new ModelAndView(new RedirectView("monitoringList.htm")); 
    } 

//----------------------------------------------------------------------------------------- 
    @RequestMapping(value = "monitoringList.htm", method = RequestMethod.GET) 
    public ModelAndView handleMonitoring(@RequestParam(value="crimeRecNo", required=true) Integer crimeRecNo, HttpServletRequest request, 
      HttpServletResponse response ,Model model) throws Exception { 


     model.addAttribute("crimeRecNo", crimeRecNo); 



     return new ModelAndView("monitoringList"); 
    } 

回答

3

RedirectView的传递模型对象的URL。在你的例子中,没有模型从后处理方法返回。

试试这个,它应该为你工作:

return new ModelAndView(new RedirectView("monitoringList.htm"), "crimeRecNo", crimeRecNo); 

希望这有助于。

+0

有没有一种方法可以隐藏用户在url中的参数,所以他们不会看到crimeRecNo? – devdar 2013-04-27 17:41:05

+1

您可以隐藏参数的唯一方法是使用hacky sesion scope属性方法。我把它称为hacky,因为它是直观的。在发布后,呈现GET请求的原因是确保用户获得幂等URL。用户可以加载多次的url,没有任何负面影响。如果这个GET链接不包含它试图获取的数据的id,但是它依赖于会话属性,那么url不再是幂等的。如果用户稍后加载URL,它甚至可能不工作,或指向会话中当前的记录。 – Akshay 2013-04-29 12:01:25

+0

我试着加密参数值,但我遇到了一些问题,你可以看看这个给我http://stackoverflow.com/questions/16259118/encryption-and-decryption-using-blowfish-error-input-length-must-待多个邻 – devdar 2013-04-29 12:29:12

相关问题