返回类型为ModelAndView时返回一个字符串

时间:2013-11-26 02:45:56

标签: java spring-mvc

当我的动作返回ModelAndView时,是否可以返回一个字符串?

public ModelAndView register(....) {

   ModelAndView mav = new ModelAndView(...);


   if( // some wierd case) {
         // halt and return a string response
   }


   return mav;
}

这不是正常情况,我知道我应该重定向到另一个页面并显示某种消息,但这是一个不寻常的情况,我真的不想那样做,或者至少我想知道如果我有这个选项可以做到这一点。

4 个答案:

答案 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文件的名称。