SpringMVC_Controller中方法的返回值2
# 返回值为 void
返回值为void的应用场景:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1:通过原始的servlet来进行跳转
2:用于ajax响应
# 创建一个“通过原始的servlet来进行跳转”
1:创建一个普通的类
package com.doaoao.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Controller public class ReturnVoidController { @RequestMapping("/returnVoid.do") public void welcome(HttpServletRequest request, HttpServletResponse response, Student student) throws Exception { request.setAttribute("student", student); request.getRequestDispatcher("/jsp/welcome.jsp").forward(request, response); } }2:创建welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> ${student.name}<br> ${student.age} </body> </html>3:在浏览器中访问:
http://localhost:8080/firstspringmvc_war_exploded/returnVoid.do?name=henry&age=18
# 创建一个"用于ajax响应"
1:创建一个文件夹,用于引入 jquery文件
2:创建ajaxResponse.jsp 文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <script src="/js/jquery-3.2.1.js"></script> </head> <body> <button id="ajaxRequest">提交</button> </body> <script> $(function () { $("#ajaxRequest").click(function () { $.ajax({ method:"post", url:"/ajaxResponse.do", data:{name:"henry",age:18}, dataType:"json", success:function (result) { alert(result.name + "," + result.age); } }); }); }); </script> </html>3:创建用于处理的类
package com.doaoao.controller; import com.alibaba.fastjson.JSON; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; @Controller public class ReturnVoidController { @RequestMapping("/ajaxResponse.do") public void ajaxResponse(HttpServletRequest request, HttpServletResponse response,Student student) throws Exception{ PrintWriter out = response.getWriter(); String jsonString = JSON.toJSONString(student); out.write(jsonString); } }
...
# 返回值的类型为Object
## 创建一个返回值为String的
1:在pom.xml文件中添加如下的内容,用于添加 jsckjson的jar包,在springMvc中使用 jackson来进行json数格式转换
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.4</version> </dependency>2:在配置 springmvc.xml 文件中注解驱动
<mvc:annotation-driven/>3:添加一个用于处理的类
(该需要添加一个注解,之前在Controller方法中返回字符串,springMvc会根据该字符串跳转到相应的jsp中,这里返回的字符串会添加到响应体中传递到jsop页面中,所以需要添加注解 @ResponseBody)
package com.doaoao.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * 方法返回Object类型 */ @Controller public class ReturnObjectController01 { @RequestMapping(value = "/returnString.do") @ResponseBody public Object returnString() throws Exception{ return "henry"; } }4:创建一个jsp文件,用于发送请求
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> <title>Title</title> <script src="/js/jquery-3.3.1.js"></script> </head> <body> <button id="ajaxRequest">提交</button> </body> <script> $(function () { $("#ajaxRequest").click(function () { $.ajax({ method:"post", url:"/returnString.do", success:function (result) { alert(result); } }); }); }); </script> </html>5:当第3步中的返回值存在中文时,会出现乱码
(需要在@RequestMapping中添加属性 produces)
@Controller public class ReturnObjectController01 { @RequestMapping(value = "/returnString.do", produces = "text/html;charset=utf-8") @ResponseBody public Object returnString() throws Exception{ return "你好世界"; } }
## 创建一个返回值为map的
1:创建一个类
@Controller public class ReturnObjectController { @RequestMapping(value = "/returnMap.do") @ResponseBody public Object returnString() throws Exception{ Map<String, String> testMap = new HashMap<>(); testMap.put("hello", "你好"); testMap.put("world", "世界"); return testMap; } }2:jsp中添加 ajax
$(function () { $("#ajaxRequest").click(function () { $.ajax({ method:"post", url:"/returnString.do", success:function (result) { alert(result.hello); } }); }); });
...
...

更多精彩