zoukankan      html  css  js  c++  java
  • Spring MVC方法的返回值类型

    controller中方法的返回值类型

      Object、String、ModelAndView、void

      ModelMap、Map、void、map、List、Set...

      (用的最多的还是:Object、String、ModelAndView、void)

    void:

      返回值类型为void时:则只是纯粹的执行了方法中的程序,然后响应的url依然为请求的url

      例如案例中请求为index.do  则响应的url为 index  在视图解析器解析之后得到的最终的url为 /WEB-INF/jsp/index.jsp

      跟Servlet的方式就差不多了

    String:

      返回值类型为String时:一般用于返回视图名称

      1.当方法返回值为Null时,默认将请求路径当做视图 /jsp/thread/secondRequest.jsp

       如果说没有试图解析器,如果返回值为Null携带数据只能用JSON
      2.当方法返回一个String的字符串时,当字符串为逻辑视图名时只返回视图,

       如果要携带数据则使用request,session或者Json
       如果要用Model或者ModelMap传递数据,那么Model或者ModelMap必须是方法入参
      3.当方法返回值加入forward的时候代表转发,如果写为redirect:xxxx代表重定向,不是返回视图了
      乱码解决:
      1.Controller传递数据给页面,在RequestMapping当中指定produces="text/json;charset=utf-8"
      2.Controller接收页面数据使用编码过滤器

    ModelAndView:

      返回值类型为ModelAndView时:model是携带到页面的数据   View是视图

      例:

    @RequestMapping("/threadRequest*")
        public ModelAndView threadRequest(){
            ModelAndView mv=new ModelAndView();
            mv.setViewName("index");    //视图
            mv.addObject("user","王五");  //数据
            return mv;
        }

    Object:

      返回值类型为Object时:

      1.当方法返回值为Null时,默认将请求路径当做视图 /jsp/thread/secondRequest.jsp 如果说没有试图解析器,如果返回值为Null携带数据只能用JSON
      2.当方法返回值为String类型字符串时,就是视图的逻辑名称
      3.当返回对象或者集合数据时,要使用Json格式字符串,可选fastJson手动转换,也可以使用jackson自动转换

     
  • 相关阅读:
    「JSOI2015」套娃
    「JSOI2015」非诚勿扰
    「JSOI2015」送礼物
    「JSOI2015」子集选取
    「JSOI2015」salesman
    「JSOI2015」字符串树
    [2]树的DFS序
    hdu 6058 Kanade's sum
    UVALive 6907 Body Building
    CF617/E XOR and Favorite Number
  • 原文地址:https://www.cnblogs.com/F017/p/11832751.html
Copyright © 2011-2022 走看看