返回值是String、void、ModelAndView类型
/**
* 返回值是字符串类型
*
* @param model
* @return
*/
@RequestMapping("/testString")
public String testString(Model model) {
System.out.println("testString方法执行了");
User user = new User();
user.setUsername("张三");
user.setPassword("123456");
user.setAge(20);
model.addAttribute("user", user);
//指定逻辑视图的名称,根据视图解析器为物理视图的地址
//跳转到某个页面
return "success";
}
/**
* 返回值是void
* 如果控制器的方法返回值编写成void,执行程序报404的异常,默认查找JSP页面没有找到
* 默认会跳转到@RequestMapping(value="/initUpdate") initUpdate的页面
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@RequestMapping("/testVoid")
public void testVoid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("testVoid方法执行了");
//1.转发
//request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request, response);
//2.重定向
//response.sendRedirect(request.getContextPath() + "/index.jsp");
//解决中文乱码
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//直接进行响应
response.getWriter().write("你好");
return;
}
/**
* 返回值是ModelAndView
* ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图
*
* @return
*/
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView() {
//创建ModelAndView对象
ModelAndView mv = new ModelAndView();
User user = new User();
user.setUsername("李四");
user.setPassword("123456");
user.setAge(20);
System.out.println("testModelAndView方法执行了");
//将User对象存入mv,User对象会同时存入request对象中
mv.addObject("user", user);
//设置跳转到哪个页面
mv.setViewName("success");
return mv;
}
/**
* 返回值中使用关键字进行转发或重定向
*
* @return
*/
@RequestMapping("/testForwardOrRedirect")
public String testForwardOrRedirect() {
//使用关键字进行转发和重定向的时候不能再使用视图解析器对象,需自己补全路径
//转发
//return "forward:/WEB-INF/pages/success.jsp";
//重定向
return "redirect:/index.jsp";
}
响应JSON数据
jsp
<%@ 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>
$(function () {
$("#btn").click(function () {
$.ajax({
url: "user/testAjax",
contentType: "application/json;charset=utf-8",
data: '{"username":"张三","password":"123456","age":30}',
dataType: "json",
type: "post",
async: true,
success: function (data) {
alert("响应的姓名:" + data.username)
}
});
});
});
</script>
</head>
<body>
<button id="btn">ajax异步请求</button>
</body>
</html>
Controller
@RequestMapping("/testAjax")
public @ResponseBody
User testAjax(@RequestBody User user) {
//客户端发送ajax请求,将json字符串封装到User中
System.out.println(user);
//返回一个新的User
user.setUsername("lisi");
user.setPassword("abcd");
user.setAge(12);
return user;
}