Action中使用Json
时间:2022-07-24
本文章向大家介绍Action中使用Json,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.前台页面中的ajax:
//根据部门查询该部门下的用户列表
function doSelectDept(){
//1、获取部门
var dept = $("#toCompDept option:selected").val();
if(dept != ""){
//2、根据部门查询列表
$.ajax({
url:"${basePath}sys/home_getUserJson2.action",
data:{"dept":dept},
type:"post",
dataType:"json",//返回数据类型
success: function(data){
//2.1、将用户列表设置到被投诉人下拉框中
if(data != null && data != "" && data != undefined){
if("success" == data.msg){
var toCompName = $("#toCompName");
toCompName.empty();
$.each(data.userList, function(index, user){
toCompName.append("<option value='" + user.name + "'>" + user.name + "</option>");
});
} else {alert("获取被投诉人列表失败!");}
} else {
alert("获取被投诉人列表失败!");
}
},
error:function(){alert("获取被投诉人列表失败!");}
});
} else {
//清空被投诉人列表下拉框
$("#toCompName").empty();
}
}
后台Action中输出json格式文本:
方法一:直接用输出流输出Json格式的文本内容。
要在项目中引入对应的包:找到struts2.x 的lib包,向本项目lib包加入“json-lib-2.3-jdk15.jar,ezmorph-1.0.6.jar,commons-beanutils-1.8.0.jar”
public void getUserJson(){
try {
//1、获取部门
String dept = ServletActionContext.getRequest().getParameter("dept");
if(StringUtils.isNotBlank(dept)){
QueryHelper queryHelper = new QueryHelper(User.class, "u");
queryHelper.addCondition("u.dept like ?", "%" + dept);
//2、根据部门查询用户列表
List<User> userList = userService.findObjects(queryHelper);
//创建Json对象
JSONObject jso = new JSONObject();
jso.put("msg", "success");
jso.accumulate("userList", userList);
//3、输出用户列表以json格式字符串形式输出
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(jso.toString().getBytes("utf-8"));
outputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
方法二:使用struts2-json-plugin-2.x.jar 包,由struts将action中的变量组装成Json对象。
加入 struts2-json-plugin-2.x.jar 到项目中,在*-struts.xml中配置对应请求方法的返回类型为json。如下:
在Action中:
public String getUserJson2(){
try {
//1、获取部门
String dept = ServletActionContext.getRequest().getParameter("dept");
if(StringUtils.isNotBlank(dept)){
QueryHelper queryHelper = new QueryHelper(User.class, "u");
queryHelper.addCondition("u.dept like ?", "%" +dept);
//2、根据部门查询用户列表
return_map = new HashMap<String, Object>();
return_map.put("msg", "success");
return_map.put("userList", userService.findObjects(queryHelper));
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
配置文件中:
<package extends="json-default" namespace="/sys" name="sysHomeJson-action">
<action name="home_getUserJson2" method="getUserJson2"
class="cn.itcast.home.action.HomeAction">
<result type="json">
<param name="root">return_map</param>
</result>
</action>
</package>
在返回类型中指定了root参数,意思是只返回并格式化这个类属性为json。【注意:需要利用struts返回json对象的变量,要有对应的get方法。】
- Java中如何判断一个字符串是Java代码还是英文呢?
- 将复杂查询写到SQL配置文件--SOD框架的SQL-MAP技术简介
- Java中实现找到两个数组交集的2种方法,开发实用
- Java Web中JSP的include 指令知识点总结——每日一语法学习
- Java反序列化漏洞从理解到实践
- ORM查询语言(OQL)简介--高级篇(续):庐山真貌
- Java中使用Hibernate系列之映射关联启动工作学习(第五节)
- Java中使用Hibernate系列之单向Set-based的关联学习(第四节)
- Java中使用Hibernate系列之加载并存储对象学习(第三节)
- Java中使用Hibernate系列之启动方法学习(第二节)
- Java中使用Hibernate系列之映射文件学习(第一节)
- Java中为图片添加水印效果的方法——实例代码
- Java中使用Hibernate系列之过滤器(filters)学习
- Node.js中的内存泄漏分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Dynamic Programming - 213. House Robber II
- Dynamic Progamming - 198. House Robber
- Dynamic Programming - 221. Maximal Square
- Dynamic Programming - 174. Dungeon Game
- Dynamic Programming - 97. Interleaving String
- Dynamic Programming - 72. Edit Distance
- Dynamic Programming - 64. Minimum Path Sum
- Dynamic Programming - 322. Coin Change
- Dynamic Programming - 279. Perfect Squares
- Dynamic Programming - 120. Triangle
- Dynamic Programming - 63. Unique Paths II
- Tree - 109. Convert Sorted List to Binary Search Tree
- Tree - 108. Convert Sorted Array to Binary Search Tree Easy
- Tree - 236. Lowest Common Ancestor of a Binary Tree
- Tree - 235. Lowest Common Ancestor of a Binary Search Tree