1

我在Spring MVC 应用程序中有以下方法框架

@RequestMapping(value = "/activateMember/{token}", method = RequestMethod.GET, produces = "text/html")
public String activateMember(@PathVariable("token") String token) {
...
}

token如果由于某种原因无效,我正在尝试显示错误消息。但是我没有ModelAttribute方法参数,我真的不想要一个。但是我当然不能使用ErrorsorBindingResults参数,因为缺少 aModelAttribute及其对应的form.

所以我的问题是:在给定上述方法签名且不引入 ModelAttribute 的情况下
,推荐的显示错误消息的方法是什么?

4

1 回答 1

1

如果String您从该方法返回的是一个视图名称(Spring 默认),那么只需为这种情况创建一个视图并执行以下操作:

@RequestMapping()
public String activateMember(@PathVariable("token") String token) {
    if(checkToken(token)){
        doProcess();
        return "userprofile";
    } else {
        return "badtoken"
    }
}

在更复杂的情况下,您可能有一个与错误令牌相关的异常层次结构。(令牌已过期,令牌不正确等等)。您可以@ExceptionHandler在同一个控制器中注册一个:

@RequestMapping()
public String activateMember(@PathVariable("token") String token) {
    return activate(token); // This method may throw TokenException and subclasses.
}

@ExceptionHandler(TokenException.class)
public ModelAndView tokenException(TokenException e){
    // some code
    return new ModelAndView("badtoken", "exception", e);
}
于 2013-02-19T12:05:21.077 回答