这里要主要的是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";
}

}

SpringMVC05 return (Json)的更多相关文章

  1. .net backend return json string , used by frontend

    伪代码: backend: public string GetJson() { var lst = xxxLst; var obj = Json(lst);return new JavaScriptS ...

  2. config .net webapi to return json.

    1.add content negotiator using System; using System.Collections.Generic; using System.Linq; using Sy ...

  3. return Json对象时序列化错误

    当要序列化的表与另一个表是一对多的关系是,表1序列化时会找到另一个表2关联的字段,会将另一个表2进行序列化,然后表2中也有一个字段与表1关联,这样序列化就会产生循环序列化. 在网上进行搜索,其中大多数 ...

  4. How do I get ASP.NET Web API to return JSON instead of XML using Chrome

    public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Ro ...

  5. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  6. .Net深入实战系列—JSON序列化那点事儿

    序 当前主流的序列化JSON字符串主要有两种方式:JavaScriptSerializer及Json.net(Nuget标识:Newtonsoft.Json).JavaScriptSerializer ...

  7. C#提供APP接口之JSON差异

    C#在给APP提供接口,现在返回的数据大部分分为三类:JSON.XML.BTYE. 今天简单说下C#给APP提供接口返回JSON的一些异同: 1.通过Newtonsoft.Json.JsonConve ...

  8. 将Json数据保存在静态脚本文件中读取

    一些常用的数据例如一些网站的区域信息被改变的可能性不大,一般不通过请求获取,于是我们选择存在静态文件中,例如以下Demo: 1.动态加载Json数据显示到前台 [HttpPost] public Ac ...

  9. Java中json的构造和解析

    什么是 Json? JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式.  易于人阅读和编写.同时也易于机 ...

随机推荐

  1. 将List中部分字段转换为DataTable中

    由于原来方法导出数据量比较大 的时候,出现卡顿现象:搜索简单改造:(下面方法借助NPIO) /// <summary> /// 将List中原文和译文转换为Datatable /// &l ...

  2. UI面试题(1)

    1.请创建一个数组对象[@“ad”,@“bc”,@“sdf”,@“yu”],并且对该数组对象进行排序(使用冒泡排序); NSMutableArray *array = [NSMutableArraya ...

  3. 使用DOS指修改文件名

    需求:将文件名中的特殊字符#和~去掉 文件夹路径如下: 开始->运行->在对话框中输入字母“cmd”,进入dos模式 输入命令行“cd c:\test”然后回车,再输入命令行“dir /b ...

  4. c/c++进制转换练习

    1 下列数最大的是( ).括号内为数字,括号外为进制.(360集团) (10010101)2 (227)8------>10010111 (96)16------>10010110 (14 ...

  5. 15. CTF综合靶机渗透(八)

    VM Name: BlackMarket VM Description: BlackMarket VM presented at Brisbane SecTalks BNE0x1B (28th Ses ...

  6. 7.21实习培训日志-JDBC JSP Servlet

    JDBC JSP Servlet 总结 今天早上的考试主要考Java的网络,HttpClient的get,post方法,Socket的文件传输和Xml和Json文件的解析,对于HttpCLient很简 ...

  7. UVaLive 5031 Graph and Queries (Treap)

    题意:初始时给出一个图,每个点有一个权值,三种操作:(1)删除某个边:(2)修改每个点的权值:(3)询问与节点x在一个连通分量中所有点的第K大的权值. 析:首先是要先离线,然后再倒着做,第一个操作就成 ...

  8. TMF大数据分析指南 Unleashing Business Value in Big Data(一)

    大数据分析指南 TMF Frameworx最佳实践 Unleashing Business Value in Big Data 前言 此文节选自TMF Big Data Analytics Guide ...

  9. Unity中限制轴向移动范围Mathf.Clamp

    Mathf.Clamp   在游戏中,为了限制玩家的某一轴向的移动不超过一定的范围,可以用Mathf.Clamp来解决 Mathf.Clamp(float value,float min,float ...

  10. I18N的前后端实现

    所需工具: 1.Vue                https://cn.vuejs.org/ 2.Vue-I18N      https://www.npmjs.com/package/vue-i ...