Struts的JSON机制
需要加入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机制的更多相关文章
- struts中json机制与普通页面跳转机制混用(全局结果集配置返回json)
package继承json-default与struts-default 返回结果是add的话将addResult属性转换为json返回(addResult属性有getter,setter方法),返回 ...
- Ajax异步请求struts的JSON机制(省市区三级联动)
1.struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts P ...
- struts返回json数据
想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet ...
- 深入理解struts的运行机制
扫码关注公众号,不定期更新干活 在此申明本博文并非原创,原文:http://blog.csdn.net/lenotang/article/details/3336623,本文章是在此文章基础上进行优化 ...
- struts token令牌机制
利用Struts同步令牌(Token)机制来解决Web应用中的重复提交问题.该方法的基本原理是:服务器端在处理到达的request之前,会将request中的Token值与保存在当前用户session ...
- Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动
看网上JqueryAjax三级联动的例子讲不是很全,代码也给的不是很全,给初学者带来一定的难度.小弟自己写了一个,可能有些地方不是很好,希望大家能够提出建议. 用的是Hibernate+struts2 ...
- 【自制工具类】struts返回json数据包装格式类
自己写的一个给struts返回的json数据包装格式类,不喜勿喷,原创,需在项目中引入com.alibaba.fastjson的jar包 先看下效果(这里没有使用msg,有兴趣的往下看): 上demo ...
- 关于Struts传递json给easyui的随笔
今天在公司写测试代码,由于公司用的是ssh框架做的商城项目,我想先实现下简单的增删改查,奈何没有很好的后台页面(毕竟不能测试代码直接在他的项目里改啊) 所以想到了淘淘商城中有这个后台的管理页面,打算一 ...
- Struts Ajax Json
一.包 struts2与json的依赖包:struts2-json-plugin-2.2.3.jar 二.过程: ①引入json依赖包 ②编写action类 ③配置struts.xml ④编写页面 ⑤ ...
随机推荐
- 【题解】 bzoj1076: [SCOI2008]奖励关 (装压+期望dp)
题面戳我 Solution 并不会做,看了下题解大概了解了.期望这个东西好难搞啊qwq 我们定义\(dp[i][j]\)表示第\(i\)步,拿到宝物前的状态为\(j\). 正着来会有很多不合法的情况, ...
- 洛谷 P2515 [HAOI2010]软件安装 解题报告
P2515 [HAOI2010]软件安装 题目描述 现在我们的手头有\(N\)个软件,对于一个软件\(i\),它要占用\(W_i\)的磁盘空间,它的价值为\(V_i\).我们希望从中选择一些软件安装到 ...
- python 线程间事件通知
这是线程间最简单的通信机制:一个线程发送事件,其他线程等待事件事件机制使用一个内部的标志,使用set方法进行使能为True,使用clear清除为falsewait方法将会阻塞当前线程知道标记为True ...
- [HEOI2013]SAO ——计数问题
题目大意: Welcome to SAO ( Strange and Abnormal Online).这是一个 VR MMORPG, 含有 n 个关卡.但是,挑战不同关卡的顺序是一个很大的问题. 有 ...
- 有趣的filter
js中的filter就是过滤的意思,比如,我们以什么样的方式进行过滤,得到我们想要的结果. 对,我们要的就是这个结果. 给定一个数组,我们要的是Burger(汉堡) const restaurants ...
- Java 多线程间通信
JDK 1.5 以后, 将同步和锁封装成了对象, 并将操作锁的隐式方法定义到了该对象中, 将隐式动作变成了显示动作. Lock 接口 Lock 接口, 位于 java.util.concurrent. ...
- python 数据类型 datatype
python 数据类型 datatype 列表list 元组tuple 集合set 字典dictionary 字符串string 一.列表list list :python的一种数据类型.是可变的, ...
- npm脚本
在package.json的script里面我们可以写很多npm脚本,下面我来总结一下一些日常遇到的知识点: 1.npm_lifecycle_event npm 提供一个npm_lifecycle_e ...
- Hadoop生态圈-离线方式部署Cloudera Manager5.15.1
Hadoop生态圈-离线方式部署Cloudera Manager5.15.1 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 到目前位置,Cloudera Manager和CDH最新 ...
- xgboost应用
在业务中,我们经常需要对数据建模并预测.简单的情况下,我们采用 if else 判断(一棵树)即可.但如果预测结果与众多因素有关,而每一个特征的权重又不尽相同. 所以我们如何把这些特征的权重合理的找出 ...