重定向到控制器后应该如何添加属性

时间:2013-09-05 18:20:09

标签: spring-mvc

我只是一个关于Spring的新手。

我现在使用@ExceptionHandler来处理我的Web应用程序的所有异常。在我捕获异常之后,它将转到和error.jsp页面显示错误消息。

我有ParentController,其中我有:

    @org.springframework.web.bind.annotation.ExceptionHandler(PortalException.class)
    public ModelAndView handle(PortalException e, HttpServletRequest request) {
        ModelMap map = new ModelMap();

        map.addAttribute("message", e.getMessage());

        return new ModelAndView("/error", map);
    }

我有ErrorController扩展ParentController以添加属性:

@Controller
public class ErrorController extends ParentSecureController {

    @RequestMapping(value = "/error", method = RequestMethod.POST)
    @ResponseBody
    public String errorHandler(Model model, HttpServletRequest request) {
        model.addAttribute("excetpion.message", request.getParameter("message"));
        return "/error";
    }
}

error.jsp

<p>Excpetion is: ${exception.message}</p>

当我运行我的应用程序时,我可以捕获异常并跳转到error.jsp,但不会显示异常消息。 任何人都可以帮我弄清楚如何解决它。

1 个答案:

答案 0 :(得分:0)

请尝试使用:

@Controller
public class ErrorController extends ParentSecureController {
     @RequestMapping(value = "/error", method = RequestMethod.POST)
     @ResponseBody
     public String errorHandler(Map<String, Object> map, HttpServletRequest request) {
           map.put("excetpion.message", request.getParameter("message"));
           return "/error";
    }
}

<强>更新

映射你从@Controller到View,在这种情况下得到它的错误error.jsp

我希望这些有帮助! :)