Spring MVC响应数据方式
-
-
String类型:是将控制器的相关的Sting类型的值在视图中展示。可以使用关键字跳转页面:forward或redirect关键字加上冒号页面完整路径地址
<a href="user/selectById">查询用户a>
import org.springframework.ui.Model; ? @Controller @RequestMapping(value="user") public class UserController{ @RequestMapping(value="selectById") public String selectById(Model model){ User user = new User(); user.setUsername("胡先森"); user.setPassword("12345"); model.addAttribute("user", user); return "user" } }
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>用户title> head> <body> <h3>用户界面h3> <ul> <li>用户信息li> <li>用户名称:${user.username}li> <li>用户密码:${user.password}li> ul> <a href="back">返回a> body> html>
-
void类型:jsp页面的地址需要写全
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; ? @Controller @RequestMapping(value="user") public class UserController{ @RequestMapping(value="back") public void back(HttpServletRequest request, HttpServletResponse response) throw Exception{ //请求转发编程,像这样的话,一般只能使用一次,建议不使用 //request.getRequestDispatcher("/index.jsp").forword(request, response); //重定向,这个就可以使用, //response.sendRedirect(request.getContextPath()+"/index.jsp"); //以上两种都是返回页面,下面这种是直接作出反应 //设置中文乱码 response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.getWriter().print("Hello World!"); } }
-
ModelAndView类型:返回这种数据类型是和第一种方式的功能一样的
import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("user") public class UserController{ @RequestMapping("selectById") public ModelAndView selectById(){ ModelAndView modelAndView = new ModelAndView(); User user = new User(); user.setUsername("胡先森"); user.setPassword("12345"); modelAndView.addObject("user", user); //设置即将要跳转的页面 modelAndView.setViewName("user"); return modelAndView; } }
-
-
响应json数据
-
过滤静态资源
-
创建静态资源目录,一般是在webapp目录下创建js、css、images等目录
-
导入前端传来的参数封装成JavaBean对象所需的依赖包
<dependency> <groupId>com.fasterxml.jackson.coregroupId> <artifactId>jackson-databindartifactId> <version>2.9.0version> dependency> <dependency> <groupId>com.fasterxml.jackson.coregroupId> <artifactId>jackson-coreartifactId> <version>2.9.0version> dependency> <dependency> <groupId>com.fasterxml.jackson.coregroupId> <artifactId>jackson-annotationsartifactId> <version>2.9.0version> dependency>
-
在springmvc.xml配置文件配置前端控制器过滤静态资源
<mvc:resources mapping="/js/**" location="/js/" />
-
导入js文件,编写简单的ajax事件,像这种传值(前端的data)只能是以下的方式,才能前后台不报错
<script src="js/jquery.min.js">script> <script> $(function(){ $("#btn").click(function(event){ event.preventDefault(); $.ajax({ url: "user/save", type: "POST", contentType: "application/json;charset=UTF-8", dataType: "json", data: '{"username":"胡先森", "password": "12345"}', success: function(data){ console.log(data); //{"username":"胡先森", "password": "12345"} } }) }) }) script> <form action="" method=""> <input type="text" name="username" /> <input type="text" name="password" /> <input id="btn" type="submit" value="提交" /> form>
-
控制器的方法实现
@RequestMapping("save") public @Response User save(@RequestBody User user){ System.out.println(user); //User{"username":"胡先森", "password": "12345"} return user; }
-
-