如何将Spring Controller / Model中的错误传递给视图文件

时间:2013-07-30 15:50:03

标签: java spring jsp spring-mvc

如何从使用Spring MVC实现的Controller将错误传递给视图文件?这些错误不是表单错误。只是将在“JSP”视图中的div内显示的业务逻辑错误。

以下是我的控制器操作:

@RequestMapping(method = RequestMethod.POST)
public String processLoginForm(HttpServletRequest request, LoginForm loginForm, 
BindingResult result, @SuppressWarnings("rawtypes") Map model) 
{
    loginForm = (LoginForm) model.get("loginForm");

    String gotoURL = request.getParameter("gotoURL");

    if (gotoURL == null || gotoURL == "") 
    {
        String errorMessage = "No Redirect URL Specified"; 
        return "loginerror";//loginerror is the view file I want to pass my error to.
    }
    model.put("loginForm", loginForm);
    return "loginsuccess";
}

谢谢,

3 个答案:

答案 0 :(得分:6)

更改您的方法签名:

public String processLoginForm(HttpServletRequest request, LoginForm loginForm,
                 BindingResult result, ModelMap model)

您可以将错误消息放在ModelMap中,然后将其转发到 loginerror 页面。

if (gotoURL == null || "".equals(gotoURL)) 
{
    final String errorMessage = "No Redirect URL Specified"; 
    modelMap.addAttribute("errorMessage ", errorMessage);
    return "loginerror";//loginerror is the view file I want to pass my error to.
}

您可以使用EL在div中获取该内容。

<div>${errorMessage}</div>

答案 1 :(得分:2)

你的方法是

  

public String processLoginForm(HttpServletRequest request,LoginForm   loginForm,BindingResult结果,@ SuppressWarnings(“rawtypes”)Map   模型)

New The Idiot解释的方法是

  

public String processLoginForm(HttpServletRequest request,LoginForm   登录表格,                    BindingResult结果,ModelMap模型)

看到Map模型被ModelMap模型替换

如果使用此方法,则可以使用model.addAttribute添加错误消息

答案 2 :(得分:1)

您可以使用Spring支持进行异常处理..

HandlerExceptionResolver@ExceptionHandler

@adarshr

Link

希望它会有所帮助。