Java 用params向前跳
我正在尝试将请求转发给另一个控制器。 它似乎前进正确,但另一个控制器没有获得我指定的参数。 这是我的密码:Java 用params向前跳,java,spring-mvc,Java,Spring Mvc,我正在尝试将请求转发给另一个控制器。 它似乎前进正确,但另一个控制器没有获得我指定的参数。 这是我的密码: @RequestMapping(value = "/register", method = RequestMethod.POST) public String registerUser(@RequestParam("name") String name, @RequestParam("email") String email,
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String registerUser(@RequestParam("name") String name,
@RequestParam("email") String email,
@RequestParam("pswd") String password,
HttpServletRequest request) throws IOException {
try {
manager.getTransaction().begin();
User user = new User();
user.setName(name);
user.setEmail(email);
user.setPassword(password);
manager.persist(user);
manager.getTransaction().commit();
} catch (Exception e) {
manager.getTransaction().rollback();
request.setAttribute("errorMessage", e.getMessage());
return "forward:/error";
}
request.setAttribute("email", email);
return "forward:/main";
}
另一个控制器:
@RequestMapping("/error")
public ModelAndView throwError(@RequestParam (value = "errorMessage") String errorMessage) {
return new ModelAndView("error", "errorMessage", errorMessage);
}
我得到的错误是(在浏览器中):
所以问题是为什么请求不包含
errorMessage
属性?怎么了?您是否尝试将method设置为RequestMethod.POST,甚至在/error controller上?是否应该返回“forward:/error?errorMessage=“+e.getMessage()”;安德里亚·吉拉迪,是的,我试过了——仍然不起作用。欧比·万·帕拉夫贾,我也试过——不起作用work@ObiWan-PallavJha解决方案似乎奏效了:
HTTP Status 400 - Required String parameter 'errorMessage' is not present