zoukankan      html  css  js  c++  java
  • springmvc09

    ModelAndView 返回值
    若处理器方法处理完后,需要跳转到其他资源,且又要在跳转的资源间传递数据,此时处理器方法返回 ModelAndView 比较好。当然,若要返回 ModelAndView,则处理器方法中需要定义 ModelAndView对象。


    返回值 String ,表示逻辑视图名称或完整视图路径
    @Controller
    public class MyController {
    /*
    * 处理器方法返回String,表示逻辑视图名称,需要配置视图解析
    * */
    @RequestMapping(value = "/returnString-view.do")
    public String doReturnView(HttpServletRequest request,String name, Integer age) {
    System.out.println("dosome方法的,name=" + name + ", age=" + age);

    //手动添加数据到request作用域
    request.setAttribute("myname",name);
    request.setAttribute("myage",age);
    /*
    * show:逻辑视图名称
    * 框架对视图执行forward转发操作
    * */
    return "show";
    }

    //处理器方法返回 String,表示完整视图路径,此时不能配置视图解析器
    @RequestMapping(value = "/returnString-view2.do")
    public String doReturnView2(HttpServletRequest request,String name, Integer age) {
    System.out.println("---doReturnView2方法---,name=" + name + ", age=" + age);

    //手动添加数据到request作用域
    request.setAttribute("myname",name);
    request.setAttribute("myage",age);
    /*
    * 完整视图路径,项目中不能配置视图解析器
    * 框架对视图执行forward转发操作
    * */
    return "WEB-INF/view/show.jsp";
    }

    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35

    返回值 void ,了解
    void:不能表示数据,也不能表示视图。在处理ajax的时候,可以使用void返回值。通过HttpServletResponse输出数据。响应ajax请求。ajax请求服务器端返回的就是数据,和视图无关。


    返回值 object 对象
    object:例如String,Integer,Map,List,Student 等等都是对象,对象有属性,属性就是数据。所以返回 object 表示数据,和视图无关。可以使用对象表示的数据,响应ajax请求。


    现在做 ajax,主要使用 json的数据格式。
    面试:springmvc开发中,返回值是object类型,如何转换为 json ?实现步骤:

    1 加入处理json的工具库的依赖,springmvc默认使用的jackson

    pom.xml 加入jackson依赖

    <!--jackson依赖-->
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.0</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.0</version>
    </dependency>

    2 在springmvc配置文件之间加入 <mvc:annotation-driven> 注解驱动

    主配置文件 springmvc.xml 加入:

    <!--@ResponseBody注解驱动-->
    <mvc:annotation-driven/>

    3 在处理器方法的上面加上 @ResponseBody
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    3 在处理器方法的上面加上 @ResponseBody

    控制器方法 MyController.java

    //处理器方法返回一个Student,通过框架转为json,响应ajax请求
    //@ResponseBody 作用:把处理器方法返回对象转为json后,通过HttpServletResponse输出给浏览器
    @ResponseBody
    @RequestMapping(value = "returnStudentJson.do")
    public Student doStudentJsonObject(String name,Integer age){

    Student student = new Student();
    student.setName("lisi");
    student.setAge(10);
    return student; //会被框架转为json
    }


  • 相关阅读:
    SharePoint提交前有效性验证
    showModalDialog/showModelessDialog弹出窗刷新例子
    在多选用户字段中查找是否存在某个用户(转自JianYi博客)
    SQL获得月第一天等
    SQL如何将Null不参与计算
    自定义Icon字段
    Backup Exec Remote Agent 在远程服务器上启动时挂起,一直显示Starting状态
    一个好用的日期控件My97DatePicker
    使用错误页统一处理错误(转)
    MS SQL游标的使用
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908527.html
Copyright © 2011-2022 走看看