+springMVC常用返回方式及异常分析1

在springMVC中支持六种类型的返回方式,接下来我们介绍常用的四种:
1.ModelAndView
[Java]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
@RequestMapping ( "/say.do" )
     public ModelAndView say()  {
         String msg= "测试返回方式ModelAndView" ;
         /**
          * 参数一:视图名称,即要跳转的页面
          * 参数二:携带到视图上面的参数名
          * 参数三:携带到视图上参数对应的值
          */
         return new ModelAndView( "success" , "msg" ,msg);
     }

注意:通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面
2.Map
[Java]  纯文本查看  复制代码
?
1
2
3
4
5
6
7
@RequestMapping ( "/show.do" )
     public Map<String, String> getMap() {
         Map<String, String> map = new HashMap<String, String>();
         map.put( "keyOne" , "hello" );
         map.put( "keyTwo" , "nihao" );
         return map;
     }

注意:在jsp页面中可直通过${keyOne}获得到值, map.put()相当于request.setAttribute方法。
3.String
[Java]  纯文本查看  复制代码
?
1
2
3
4
@RequestMapping ( "/eat.do" )
    public  String useString() {
        return "success" ;
    }

指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。
注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。
 
[Java]  纯文本查看  复制代码
?
1
2
3
4
5
6
@RequestMapping (value= "/print.do" )
@ResponseBody
public String print(){
     String message = "Hello World, Spring MVC!" ;
     return message;
}

4.void
Controller中定义void方法,这种场景一般是通过HttpServletResponse对象来输出页面内容。注意:Controller的void方法中一定要声明HttpServletResponse类型的方法入参!void方法不定义HttpServletResponse类型的入参,HttpServletResponse对象通过RequestContextHolder上下文获取  ,注意:这种方式是不可行的,void方法不定义HttpServletResponse类型的入参Spring MVC会认为@RequestMapping注解中指定的路径就是要返回的视图name。如下示例:
[Java]  纯文本查看  复制代码
?
1
2
3
4
@RequestMapping ( "/hello.do" )
    public void hello() throws IOException {
        System.out.println( "处理请求的方法..." );
    }


正确的方式应该是:
[Java]  纯文本查看  复制代码
?
1
2
3
4
@RequestMapping ( "/hello.do" )
   public void hello(HttpServletResponse response) throws IOException {
       System.out.println( "处理请求的方法..." );
   }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值