目录
2. 使用 @ResponseBody 返回 JSON 数据
前言
SpringMVC 是一种非常流行的 Web 应用框架,广泛用于构建基于 Java 的 Web 应用程序。在这篇博客中,我们将详细讲解 SpringMVC 中的几种常见技术应用及解决方案,包括页面跳转、响应 JSON 数据、文件上传、异常处理等。
第一章:数据处理与跳转
1. 结果跳转方式
在 SpringMVC 中,我们有多种方式来处理页面跳转,下面介绍几种常见的方式。
① 使用 ModelAndView
对象跳转
通过 ModelAndView
对象可以将数据和视图绑定,然后返回给客户端。下面是一个简单的例子:
@Controller
public class UserController {
@RequestMapping("/save3")
public ModelAndView save3() {
System.out.println("执行了...");
ModelAndView mv = new ModelAndView();
mv.addObject("msg", "用户名或者密码已经存在");
mv.setViewName("suc");
return mv;
}
}
这里我们通过 mv.addObject()
向视图传递数据,然后通过 mv.setViewName()
设置跳转的视图。
② 使用 Servlet API
跳转
除了通过 SpringMVC 的方式跳转外,我们还可以直接使用原生的 Servlet
API 来进行页面跳转。常用的跳转方式有输出响应、重定向和转发。
@Controller
@RequestMapping("/role")
public class RoleController {
@RequestMapping("/t1")
public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
rsp.getWriter().println("Hello,Spring BY servlet API");
}
@RequestMapping("/t2")
public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
rsp.sendRedirect("/SpringMVCDemo/html/suc.html");
}
@RequestMapping("/t3")
public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception {
req.setAttribute("msg", "hello");
req.getRequestDispatcher("/html/suc.html").forward(req, rsp);
}
}
③ 使用 SpringMVC 的跳转方式
SpringMVC 也提供了更为简洁的方式来进行页面的跳转,主要通过返回 String
类型的视图名。
@Controller
@RequestMapping("/role")
public class RoleController {
@RequestMapping("/t1")
public String test1() {
return "/html/suc.html"; // 简单的页面跳转
}
@RequestMapping("/t2")
public String test2() {
return "forward:/html/suc.html"; // 转发
}