需要加入jar包

Struts的JSON帮助我们自动将对象解析为JSON对象,不用我门借助第三方进行JSON的解析

。具体的使用机制如下:

1.Action类

package StrutsJSON;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map; import com.opensymphony.xwork2.Action; import freemarker.template.utility.NormalizeNewlines; public class JSONtest { private Map<String,Object> map;
private String name;
private String password;
List<User> list ; public List<User> getList() {
return list;
} public void setList(List<User> list) {
this.list = list;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public Map<String, Object> getMap() {
return map;
} public void setMap(Map<String, Object> map) {
this.map = map;
} public String execute(){
System.out.println(11);
System.out.println(name+" "+password);
map = new LinkedHashMap<String,Object>();
// 测试布尔类型
map.put("boob", 222);
// 测试集合类型
list = new ArrayList<>();
list.add(new User("qlq", "123456"));
list.add(new User("qz", "78910"));
map.put("list", list);
// 测试字符串类型
map.put("str", "20");
this.setMap(map);
// 测试对象
map.put("obj", new User("wlw", "22222"));
return Action.SUCCESS;
}
}

xml配置(注意package继承json-default,json-default已经继承struts-default)

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="test" extends="json-default"> <action name="jsontest" class="StrutsJSON.JSONtest">
<result type="json">
<param name="root">map</param>
</result>
</action> </package> </struts>

2.HTML通过ajax请求JSON数据

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试JSON的页面</title>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
function fun1() {
alert("开始请求数据");
$.get("jsontest.action", //请求地址
//"name=qlq&password=qlq", //请求参数
{
"name" : "qlq",
"password" : "nicai"
}, //请求传递的参数,也可以是JSON
function(data) { //data表示传递回来的数据,只有在成功的时候才有
alert(data);
}, "text" //表示返回内容的格式,json会将传回来的自动解析成json对象
);
}
</script>
</head>
<body> <input type="button" value="请求JSON数据" onclick="fun1()"> </body>
</html>

首先测试的是返回的数据格式,打印结果如下

将上面ajax请求返回数据格式改为json后再进行测试,

修改后HTML代码:

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试JSON的页面</title>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
function fun1() {
alert("开始请求数据");
$.get("jsontest.action", //请求地址
//"name=qlq&password=qlq", //请求参数
{
"name" : "qlq",
"password" : "nicai"
}, //请求传递的参数,也可以是JSON
function(data) { //data表示传递回来的数据,只有在成功的时候才有
/* 测试json数组 */
alert(data.list[0].name+" "+data.list[0].password);
/* 测试json对象与单个属性 */
alert(data.obj.name+" "+data.str);
}, "json" //表示返回内容的格式,json会将传回来的自动解析成json对象
);
}
</script>
</head>
<body> <input type="button" value="请求JSON数据" onclick="fun1()"> </body>
</html>

结果如下:

                                 

Struts的JSON机制的更多相关文章

  1. struts中json机制与普通页面跳转机制混用(全局结果集配置返回json)

    package继承json-default与struts-default 返回结果是add的话将addResult属性转换为json返回(addResult属性有getter,setter方法),返回 ...

  2. Ajax异步请求struts的JSON机制(省市区三级联动)

    1.struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts P ...

  3. struts返回json数据

    想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet ...

  4. 深入理解struts的运行机制

    扫码关注公众号,不定期更新干活 在此申明本博文并非原创,原文:http://blog.csdn.net/lenotang/article/details/3336623,本文章是在此文章基础上进行优化 ...

  5. struts token令牌机制

    利用Struts同步令牌(Token)机制来解决Web应用中的重复提交问题.该方法的基本原理是:服务器端在处理到达的request之前,会将request中的Token值与保存在当前用户session ...

  6. Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动

    看网上JqueryAjax三级联动的例子讲不是很全,代码也给的不是很全,给初学者带来一定的难度.小弟自己写了一个,可能有些地方不是很好,希望大家能够提出建议. 用的是Hibernate+struts2 ...

  7. 【自制工具类】struts返回json数据包装格式类

    自己写的一个给struts返回的json数据包装格式类,不喜勿喷,原创,需在项目中引入com.alibaba.fastjson的jar包 先看下效果(这里没有使用msg,有兴趣的往下看): 上demo ...

  8. 关于Struts传递json给easyui的随笔

    今天在公司写测试代码,由于公司用的是ssh框架做的商城项目,我想先实现下简单的增删改查,奈何没有很好的后台页面(毕竟不能测试代码直接在他的项目里改啊) 所以想到了淘淘商城中有这个后台的管理页面,打算一 ...

  9. Struts Ajax Json

    一.包 struts2与json的依赖包:struts2-json-plugin-2.2.3.jar 二.过程: ①引入json依赖包 ②编写action类 ③配置struts.xml ④编写页面 ⑤ ...

随机推荐

  1. Problem B. Harvest of Apples HDU - 6333(莫队)

    Problem Description There are n apples on a tree, numbered from 1 to n.Count the number of ways to p ...

  2. MT【1】终点在球面上的向量

    解答: 评:最小值在Q为球心时取到,体现数学对称性的美!

  3. hdu 2577 How to Type(dp)

    Problem Description Pirates have finished developing the typing software. He called Cathy to test hi ...

  4. A1067. Sort with Swap(0,*)

    Given any permutation of the numbers {0, 1, 2,..., N-1}, it is easy to sort them in increasing order ...

  5. 【LOJ#6280】数列分块4

    题目大意:维护一个长度为 N 的序列,支持两种操作:区间修改.区间求和.N <= 50000 题解:在维护分块的同时,维护每个区间的和,保证在 \(O(1)\) 的时间查询答案. 代码如下 #i ...

  6. 【洛谷P1347】排序

    题目大意:给定 N 个变量和 M 个变量之间的偏序关系,问能否求出这 N 个变量之间的一个全序.若能,输出最少利用多少条已知信息即可求的结果,且输出该全序:若无解,输出到第几条已知信息可以判定无解:若 ...

  7. [hihocoder1509][异或排序]

    hihocoder1509 思路 对于每两个数,从二进制的高位到低位考虑,发现,若前面一个的当前位是1,后面一个的当前位置是0,那么s的当前位置必须是1.反之,若前面是0,后面是1,那么s的当前位置必 ...

  8. NCBI上查看SNP位点在哪个基因座上(locus)

    首先,进入NCBI的主页网站:https://www.ncbi.nlm.nih.gov/variation/view/ 进入后,在下图红色框框位置输入目的SNP,比如rs608139 输完后,出现如下 ...

  9. mysql.user表中Host为%的含义

    百度搜: MySQL之权限管理(mysql.user表详解) 连接:http://blog.csdn.net/zmx729618/article/details/78026497 mysql.user ...

  10. 求矩形面积(问题来自PythonTip)

    描述: 已知矩形长a,宽b,输出其面积和周长,面积和周长以一个空格隔开. 例如:a = 3, b = 8 则输出:24 22 方法一: a=int(input('')) //input返回的是字符串类 ...