1.无返回值的响应
1、请求链接:
<a href="responseTest1">responseTest1</a><br/>
2、后台代码:
@RequestMapping("/responseTest1")
public void responseTest1(){
System.out.println("t1执行了");
}
3、执行结果:
控制台打印:t1执行了
浏览器显示页面:
从这里可以看出,如果不设置返回值的话,会默认跳转到访问地址.jsp页面。而如果没有这个页面的话,就会404报错。
4、手动转发或重定向
@RequestMapping("/responseTest1")
public void responseTest1(HttpServletRequest request, HttpServletResponse response) throws Exception {
//转发
//request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
//重定向
response.sendRedirect(request.getContextPath()+"/show.jsp");
}
需要注意的是:重定向是不能访问到WEB-INF下面的文件的,所以需要在外部重新编写一个。
2.返回值为ModelAndView的响应
Controller中的代码
@RequestMapping("/responseTest2")
public ModelAndView responseTest2(){
ModelAndView mv = new ModelAndView();
User user = new User();
user.setName("张三");
user.setAge("23");
mv.addObject("user", user);
//设置跳转的位置
mv.setViewName("success");
return mv;
}
success.jsp中的代码
${ user.name } ${ user.age }
页面结果:
3.使用SpringMVC框架关键字的转发或重定向
@RequestMapping("/responseTest3")
public String responseTest3(){
//转发
//return "forward:/WEB-INF/pages/success.jsp";
//重定向
return "redirect:/show.jsp";
}
4. ResponseBody响应Json数据
1.在pom添加依赖支持json数据的传递
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<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-annotations</artifactId>
<version>2.9.0</version>
</dependency>
2.编写请求页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btn").click(function(){
$.ajax({
//发数据
url:"responseTest4",
contentType:"application/json;charset=UTD-8",
data:'{"name":"张三","age":"23"}',
dataType:"json",
type:"post",
//接收到数据进行显示
success:function (data) {
alert(data.name);
}
});
});
});
</script>
</head>
<body>
<button id="btn" type="button">按钮</button>
</body>
</html>
3.编写后台代码:
@RequestMapping("/responseTest4")
public @ResponseBody User responseTest4(@RequestBody User user){
System.out.println(user);
user.setName("李四");
return user;
}
4.结果展示:
点击按钮后