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
    }


  • 相关阅读:
    iis6|iis7|配置URLRewriter|64位操作系统下|.net2.0|.net4.0|配置URLRewriter|Web.config配置详情
    如何用Fiddler对Android应用进行抓包
    asp.net写验证码
    Linq to sql 语法方法示例
    asp.net正则表达式学习例子
    js 根据年月获取当月有多少天_js获取农历日期_及Js其它常用有用函数
    Sql Server 相关错误问题及解决方法
    Javascript 添加自定义静态方法属性JS清除左右空格
    asp.net 文件批量移动重命名
    Memcached监听多个端口_同一台Windows机器中启动多个Memcached服务
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908527.html
Copyright © 2011-2022 走看看