这里要主要的是js文件要引入,文中不做解释
1.导入包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <artifactId>SpringMVC</artifactId> <groupId>cn.happy</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>SpringMVC05Return</artifactId> <packaging>war</packaging> <name>SpringMVC05Return Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--spring对应的版本号--> <spring.version>4.2.1.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> <scope>test</scope> </dependency> <!--引入需要的spring 核心jar--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.15</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.1</version> </dependency> </dependencies> <build> <finalName>SpringMVC05Return</finalName> </build> </project>
2.配置中央调度器(web.xml)
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <!--编码的过滤器--> <filter> <filter-name>CharactorEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharactorEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--context-param--> <!--config a forward controller--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--init-param--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <!--load-on-startup--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!--/ it means we can intercept every request (contains and *.do and *.css and *.jpg)--> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
3.配置映射器(spring-mvc.xml)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!--扫描包下的路径--> <context:component-scan base-package="cn.happy.controller"/> <!--根据注解来寻找路径--> <mvc:annotation-driven/> </beans>
4.实体类
public class UserInfo { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
5.1:视图页面index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8" isELIgnored="false" %> <html> <script type="text/javascript" src="js/jQuery1.11.1.js"></script> <script tpye="text/javascript"> $(function () { $("[type=button]").click(function () { $.ajax({ url: "/firstJson", 这个访问路径可以根据需求更换 type: "post", success: function (data) { $.each(data, function (i, dom) { alert(dom.name); }) } }) }) }) </script> <body> <h2>Hello World!</h2> <input type="button" value="点我发送Ajax"/> </body> </html>
5.2:视图页面list.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>List</h1> </body> </html>
5.3:视图页面login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="/second" method="post"> 用户名:<input name="name"/> 年龄:<input name="age"/> <input type="submit" value="登录"/> </form> </body> </html>
5.4视图页面welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <body> <h2>Hello World!</h2> <h1>欢迎${param.name},年龄:${param.age}</h1> </body> </html>
6.处理器(一)
import cn.happy.bean.UserInfo; 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.IOException; import java.util.ArrayList; import java.util.List; @Controller public class FirstController { @RequestMapping("/toJson") public void getJson(HttpServletRequest request,HttpServletResponse response) throws IOException { List<UserInfo> list=new ArrayList<UserInfo>(); UserInfo u1=new UserInfo(); u1.setName("微冷的雨"); u1.setAge(18); UserInfo u2=new UserInfo(); u2.setName("训练营"); u2.setAge(28); list.add(u1); list.add(u2); //泛型转json String data = JSON.toJSONString(list); //我想将data打回浏览器 response.getWriter().write(data); }}
6.2处理器(二)
import cn.happy.bean.UserInfo; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Controller public class JaksonController { //返回List集合 @RequestMapping("/firstJson") @ResponseBody public Object doFirst() { List<UserInfo> list = new ArrayList<UserInfo>(); UserInfo u1 = new UserInfo(); u1.setName("微冷的雨"); u1.setAge(18); UserInfo u2 = new UserInfo(); u2.setName("训练营"); u2.setAge(28); list.add(u1); list.add(u2); return list; }
//返回整型 @RequestMapping("/secondJson") @ResponseBody public Object doSecond() { return 1; }
//返回数字型字符串 @RequestMapping("/thirdJson") @ResponseBody public Object doThird() { return "1"; }
//返回对象 @RequestMapping("/fourJson") @ResponseBody public Object doFour() { UserInfo u1 = new UserInfo(); u1.setName("微冷的雨"); u1.setAge(19); return u1; }
@RequestMapping("/fiveJson") @ResponseBody public Object doFive() { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("1", 12); map.put("2", 23); Map<String, UserInfo> map1 = new HashMap<String, UserInfo>(); UserInfo u1 = new UserInfo(); u1.setName("微冷的雨"); u1.setAge(32); UserInfo u2 = new UserInfo(); u2.setName("训练营"); u2.setAge(34); map1.put(u1.getName(), u1); map1.put(u2.getName(), u2); return map1; }
@RequestMapping("/six") public String doSix(Model model) { model.addAttribute("msg", "微冷的雨"); //转发到页面(默认值) return "/index.jsp"; }
//转换到另外一个控制器方法① @RequestMapping("/seven") public String doSeven(Model model) { model.addAttribute("msg", "微冷的雨"); return "forward:targetMethod"; }
//转发到页面② @RequestMapping("/targetMethod") public String doEight(Model model) { System.out.println("============="); return "/list.jsp"; }
//重定向
@RequestMapping("/second")
public String doSecond(Model model, UserInfo info) {
model.addAttribute("name", info.getName());
model.addAttribute("age", info.getAge());
return "redirect:/welcome.jsp";
}


}