处理器方法返回值的四种类型

84 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

2. 返回 String

处理器方法返回的字符串可以指定逻辑视图名,通过视图解析器解析可以将其转换为物理视图地址。

image.png

image.png

当然,也可以直接返回资源的物理视图名。不过,此时就不需要再在视图解析器中再配置前辍与后辍了。

image.png

3. 无返回值void

对于处理器方法返回 void 的应用场景,应用在AJAX 响应处理。若处理器对请求处理后,无需跳转到其它任何资源,此时可以让处理器方法返回 void。我们SSM整合案例中的分页使用的就是无返回值。代码见后面。

4. 返回对象Object

处理器方法也可以返回 Object 对象。这个 Object 可以是 Integer,自定义对象,Map,List 等。但返回的对象不是作为逻辑视图出现的,而是作为直接在页面显示的数据出现的。

返回对象,需要使用@ResponseBody 注解,将转换后的 JSON 数据放入到响应体中。Ajax请求多用于Object返回值类型。由于转换器底层使用了Jackson 转换方式将对象转换为JSON 数据,所以需要添加Jackson的相关依赖。

项目案例:使用ajax请求返回一个JSON结构的学生.

实现步骤:

A.在pom.xml文件中添加依赖  

  <dependency>

      <groupId>com.fasterxml.jackson.core</groupId>

      <artifactId>jackson-databind</artifactId>

      <version>2.9.8</version>

    </dependency>

B.添加jQuery的函数库,在webapp目录下,新建js目录,拷贝jquery-3.3.1.js到目录下

C.在页面添加jQuery的函数库的引用

<script src="js/jquery-3.3.1.js"></script>

D.发送ajax请求


  function show() {

          $.ajax({

              url:"${pageContext.request.contextPath}/ajax.action",

              type:"post",

              dataType:"json",

              success:function (stu) {

                  $("#oneStu").html(stu.name+"------"+stu.age);

              }

          });

      }

E.开发action

  @Controller

public class AjaxDemo {

    @RequestMapping("/ajax")

    @ResponseBody  //此注解用来解析ajax请求

    public Object ajax(){

        Student stu = new Student("张三",22);

        return stu;

    }

}

F.在springmvc.xml文件中添加注解驱动

  <mvc:annotation-driven></mvc:annotation-driven>

G.index.jsp页面

  <a href="javascript:show()">ajax访问服务器,返回一个学生</a>

  <br>

  <div id="oneStu"></div>