当我的动作返回ModelAndView时,是否可以返回一个字符串?
public ModelAndView register(....) {
ModelAndView mav = new ModelAndView(...);
if( // some wierd case) {
// halt and return a string response
}
return mav;
}
这不是正常情况,我知道我应该重定向到另一个页面并显示某种消息,但这是一个不寻常的情况,我真的不想那样做,或者至少我想知道如果我有这个选项可以做到这一点。
答案 0 :(得分:1)
我会抛出异常。您可以为此案例创建一个Exception的子类 - 一个可以保存和回答字符串的子类。通过这种方式,您可以在特殊情况下返回String,但大多数时候都会回答ModelAndView。
public ModelAndView register(....) throws WierdCaseException {
ModelAndView mav = new ModelAndView(...);
if( // some wierd case) {
// halt and return a string response
throw new WierdCaseException("the string to be returned");
}
return mav;
}
答案 1 :(得分:0)
您可以在方法上使用注释@ResponseBody
。
答案 2 :(得分:0)
如果要返回ModelAndView,是否在服务器端使用值填充视图。你可以将字符串作为ModelAndView的一部分返回吗?
mav.addObject("myString", "this is the string for the weird case");
其他选项是获取HttpServletResponse对象的PrintWriter或ServletOutputStream并将字符串写出,然后返回null ModelAndView。
答案 3 :(得分:0)
您可以将返回类型提及为String而不是ModelAndView。返回的字符串名称应该是jsp文件的名称。