2

如何将错误从使用 Spring MVC 实现的控制器传递到视图文件?这些错误不是表单错误。只是将在“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";
}

谢谢,

4

3 回答 3

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.
}

您可以在divusing EL 中获取它。

<div>${errorMessage}</div>
于 2013-07-30T15:53:01.860 回答
2

你的方法是

public String processLoginForm(HttpServletRequest request, LoginForm loginForm, BindingResult result, @SuppressWarnings("rawtypes") Map model)

@The New Idiot 解释的方法是

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

看到Map模型被ModelMap模型替换了

如果你使用这个方法,那么你可以使用 model.addAttribute 来添加错误信息

于 2013-07-30T16:06:25.963 回答
1

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

HandlerExceptionResolver或者@ExceptionHandler

@adarshr

关联

希望它会有一些用处。

于 2013-07-30T16:56:11.193 回答