- 浏览: 787469 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (981)
- javascript (102)
- java (212)
- JQuery (81)
- 幽默笑话 (2)
- 只言片语 (6)
- 开发小记 (283)
- Hibernate (17)
- DWR (4)
- SQL (10)
- spring-ibatis (8)
- linux (24)
- Struts1 (8)
- Struts2 (16)
- spring (42)
- Mybatis (16)
- css (18)
- servlet (8)
- jdbc (4)
- jsp (1)
- spring-jdbc (2)
- FreeMarker (2)
- MySQL (24)
- JQuery-Grid (7)
- jstl (5)
- 正则表达式 (1)
- 面试集锦 (86)
- unix (18)
- 开发工具 (23)
- ajax (5)
- webservice (4)
- log4j (3)
- oracle (15)
- extjs (14)
- 其他 (9)
- 优秀技术参考地址 (1)
- 性能 (3)
- 数据库 (25)
- 算法 (15)
- 设计模式 (10)
- Python (3)
- AIX (5)
- weblogic (1)
- shell (14)
- quartz (5)
- 图形文件FusionCharts (1)
- Websphere (4)
- 转载 (5)
- hadoop (1)
- highchart (24)
- perl (22)
- DB2 (7)
- JBoss (1)
- JQuery Easy UI (9)
- SpringMVC (5)
- ant (5)
- echart (9)
- log4J配置 (3)
- 多线程 (10)
- 系统架构 (7)
- nginx (3)
- loadrunner1 (1)
- 分布式 (1)
- Dubbo (1)
- Redis (2)
- JMS (4)
- 自动化测试 (3)
- Spring循环依赖的三种方式 (1)
- spring-boot (2)
- 高级测试 (9)
- github (2)
- sonar (1)
- docker (6)
- web前端性能优化 (1)
- spring-aop (6)
- rabbit (1)
- ELK (1)
- maven (1)
- minio (1)
最新评论
-
zengshaotao:
jstl1point0 写道很好啊,如果有带Session会话 ...
Nginx+Tomcat搭建高性能负载均衡集群 -
jstl1point0:
很好啊,如果有带Session会话的怎么搞呢
Nginx+Tomcat搭建高性能负载均衡集群
struts2.1.8以后,加入了json的plugin插件包,使用时仅需把插件包(struts2-json-plugin-2.2.1.1.jar)放入到项目中的WEB-INF/lib下面就可以。这里重点解释返回结果result中的root参数的含义,相对于其他参数,例如includeProperties, excludeProperties,excludeNullProperties等,比较难以理解。
(1)struts.xml 配置:
<struts>
<constant name="struts.i18n.encoding" value="UTF-8" />
<package name="default" namespace="/" extends="json-default">
<action name="jsontest" class="com.test.action.JsonJqueryStruts2Action">
<result name="regInfo" type="json">
<param name="root">userInfo</param>
<!-- <param name="includeProperties">userInfo.userId,userInfo.userName</param> -->
<param name="includeProperties">userId,userName</param>
<param name="excludeNullProperties">true</param>
</result>
</package>
</struts>
(2)Action类:类中有一个String类型的属性message,以及一个bean叫UserInfo
public class JsonJqueryStruts2Action extends ActionSupport {
private String message; //使用json返回单个值
private UserInfo userInfo; //使用json返回对象
... ...
(3)表单:form中必须与Action类中的属性名字大小写完全对应,不然会找不到该字段
<form>
用户ID:<input name="userInfo.userId" type="text"/><br/>
用户名:<input name="userInfo.userName" type="text"/><br/>
... ...
(4)json.js文件的ajax方法:
//向服务器发送表达数据
$("#regRe").click(function(){
//把表单的数据进行序列化
var params = $("form").serialize();
(1)struts.xml 配置:
<struts>
<constant name="struts.i18n.encoding" value="UTF-8" />
<package name="default" namespace="/" extends="json-default">
<action name="jsontest" class="com.test.action.JsonJqueryStruts2Action">
<result name="regInfo" type="json">
<param name="root">userInfo</param>
<!-- <param name="includeProperties">userInfo.userId,userInfo.userName</param> -->
<param name="includeProperties">userId,userName</param>
<param name="excludeNullProperties">true</param>
</result>
</package>
</struts>
(2)Action类:类中有一个String类型的属性message,以及一个bean叫UserInfo
public class JsonJqueryStruts2Action extends ActionSupport {
private String message; //使用json返回单个值
private UserInfo userInfo; //使用json返回对象
... ...
(3)表单:form中必须与Action类中的属性名字大小写完全对应,不然会找不到该字段
<form>
用户ID:<input name="userInfo.userId" type="text"/><br/>
用户名:<input name="userInfo.userName" type="text"/><br/>
... ...
(4)json.js文件的ajax方法:
//向服务器发送表达数据
$("#regRe").click(function(){
//把表单的数据进行序列化
var params = $("form").serialize();
对于中文,注意乱码的处理,前面已经有文章说过了。
//使用jQuery中的$.ajax({});Ajax方法
$.ajax({
url:"jsontest!regUserInfo.action",
type:"POST",
data:params,
dataType:"json",
success:function(data){
//清空显示层中的数据
$("#message").html("");
//为显示层添加获取到的数据
//获取对象的数据用data.userInfo.属性
//$("#message").append("<div><font color='red'>用户ID:"+data.userInfo.userId+"</font></div>")
//.append("<div><font color='red'>用户名:"+data.userInfo.userName+"</font></div>")
$("#message").append("<div><font color='greed'>111:"+data.userId+"</font></div>");
$("#message").append("<div><font color='greed'>222:"+data.userName+"</font></div>");
if( typeof(data.message)!='undefined' ){
$("#message").append("<div><font color='greed'>结果:"+data.message+"</font></div>");
}else{
$("#message").append("<div><font color='greed'>结果是message没定义!"+data.message+"</font></div>");
}
... ...
以上是jquery+json+struts2的主要核心配置和代码,请注意struts2配置中指定了result的name="root",所谓root的含义,是指返回的json数据的根为root中指定的bean类,例如此处为userInfo,如果没有指定root属性,则默认使用Action作为返回的json数据的根,区别如下:
result中使用了root参数后返回的json数据:
{"userInfo":[
{"userId":"Patrick", "userName":"123456"}
]}
result中没设置root参数返回Action中的json数据:
{"data":[
{"userInfo":[ {"userId":"Patrick", "userName":"123456"} ] },
{"message":"testMesssageData"}
]}
所以我们要注意,如果设置了root属性之后,<param includeProperties></param>中就应该直接使用userId,userName而非userInfo.userId,userIndo.userName了。
此外,json.js代码中还展示了遇到类似message等属性返回后是undefined的情况可以使用typeof()!='undefined'进行判断
//使用jQuery中的$.ajax({});Ajax方法
$.ajax({
url:"jsontest!regUserInfo.action",
type:"POST",
data:params,
dataType:"json",
success:function(data){
//清空显示层中的数据
$("#message").html("");
//为显示层添加获取到的数据
//获取对象的数据用data.userInfo.属性
//$("#message").append("<div><font color='red'>用户ID:"+data.userInfo.userId+"</font></div>")
//.append("<div><font color='red'>用户名:"+data.userInfo.userName+"</font></div>")
$("#message").append("<div><font color='greed'>111:"+data.userId+"</font></div>");
$("#message").append("<div><font color='greed'>222:"+data.userName+"</font></div>");
if( typeof(data.message)!='undefined' ){
$("#message").append("<div><font color='greed'>结果:"+data.message+"</font></div>");
}else{
$("#message").append("<div><font color='greed'>结果是message没定义!"+data.message+"</font></div>");
}
... ...
以上是jquery+json+struts2的主要核心配置和代码,请注意struts2配置中指定了result的name="root",所谓root的含义,是指返回的json数据的根为root中指定的bean类,例如此处为userInfo,如果没有指定root属性,则默认使用Action作为返回的json数据的根,区别如下:
result中使用了root参数后返回的json数据:
{"userInfo":[
{"userId":"Patrick", "userName":"123456"}
]}
result中没设置root参数返回Action中的json数据:
{"data":[
{"userInfo":[ {"userId":"Patrick", "userName":"123456"} ] },
{"message":"testMesssageData"}
]}
所以我们要注意,如果设置了root属性之后,<param includeProperties></param>中就应该直接使用userId,userName而非userInfo.userId,userIndo.userName了。
此外,json.js代码中还展示了遇到类似message等属性返回后是undefined的情况可以使用typeof()!='undefined'进行判断
发表评论
-
input 隐藏 方法传入字符串参数
2020-04-12 14:02 632JQuery 使用 $("#input[id='' ... -
JQuery 之empty and remove
2017-12-25 18:59 435$("table tr[id^=trAddColum ... -
easyui dialog隐藏与显示
2017-12-13 18:30 1595有时候需要对查询的结果进行过滤,当然如果是前端过滤,就不要再 ... -
cookie操作 JQuery
2017-03-23 22:18 519首先包含jQuery的库文件,在后面包含 jquery.coo ... -
表单参数一并提交
2017-03-23 13:09 565对于一般的table数据,并且还带有查询条件,我们都会使用j ... -
JQuery解析XML
2017-03-19 17:26 479用JavaScript解析XML数据是常见的编程任务,Ja ... -
表格动态展示与下钻
2016-09-13 08:37 1283<%@ page language="jav ... -
JQuery tree的使用
2016-07-12 09:32 1136$(function(){ $('#cardTree') ... -
兄弟frame之间控制页面
2016-05-17 18:05 867<FRAMESET cols=" ... -
easy ui 树的常用功能
2016-05-17 14:40 650遍历tree nodes function Trav ... -
attr(),css()
2016-05-04 17:54 421JQuery的attr()方法,设置属性,不同于css(), ... -
$.browser.msie为空
2016-03-03 17:34 487'$.browser.msie' 为空或不是对象,这个是j ... -
jOrgChart 后端取数--递归构建map
2016-03-03 11:41 774<!DOCTYPE html> <htm ... -
jOrgChart 后端取数--手工构建map
2016-03-03 11:39 654<!DOCTYPE html> <htm ... -
jOrgChart横向的组织机构树--手工构造json数据
2016-03-02 17:41 1263<!DOCTYPE html> <htm ... -
jOrgChart的调试模式
2016-03-02 14:41 1146jOrgChart是一个不错的横向组织树插件,在视觉体验上也 ... -
jOrgChart横向的组织机构数插件
2016-03-02 12:03 918<!DOCTYPE html> <htm ... -
easy ui data grid
2016-02-22 16:40 980JQuery Easy Ui dataGrid 数据表格 ... -
JQuery easy ui 图标扩展
2015-12-23 15:44 980JQuery easy ui 1.2.6有很多的图标, ... -
获取页面高度
2015-12-15 10:26 456$(document).height() //是获取整个页 ...
相关推荐
这里的关键是`<param name="includeProperties">result</param>`,它指定了要包含在JSON响应中的属性名称。最终客户端接收到的JSON数据可能类似于`{"result":"ok"}`或`{"result":"no"}`。 ##### 2. JSON数组返回 ...
在C#编程中,处理JSON(JavaScript Object Notation)文件是一项常见的任务,因为JSON是一种轻量级的数据交换格式,广泛用于API数据传输和配置文件存储。本篇文章将深入探讨如何在C#中读取和修改JSON文件,以及相关...
在C语言环境中,处理JSON(JavaScript Object Notation)数据是一项常见的任务。JSON作为一种轻量级的数据交换格式,广泛应用于网络服务、配置文件和数据存储等领域。cJSON库则为C程序员提供了一种高效且易用的方式...
XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种...总之,XML到JSON的转换是数据交换中的常见操作,通过合适的编程语言库和算法,我们可以轻松实现这一转换,以适应不同应用场景的需求。
2. **配置文件中增加JSON支持**:在项目配置文件(如XML配置文件)中增加对JSON的支持,以便能够正确地解析并显示来自后端的JSON数据。例如,在Struts2项目中,可以在`struts.xml`文件中增加以下配置: ```xml ...
6. **其他参数与注解**:除了上述参数,`result`类型还可以配置其他参数,比如`root`参数用于指定返回的JSON对象的根属性,或者使用注解在Pojo类的属性上,以控制其在JSON序列化和反序列化中的行为。 7. **JSON安全...
如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。例如,只返回`message`属性: ```java @Results({ @Result(name="success", type="json", ...
这个插件添加了对JSON的内置支持,允许你在Action类中直接创建一个Java对象,并通过配置或者注解来指定哪些属性应被转换为JSON。这样,前端的JavaScript可以方便地解析这些数据,进一步展示或者进行其他操作。 **...
在Struts2中,我们可以通过Action类返回一个JSON结果类型,这样Struts2会自动将Action的属性转化为JSON格式并返回给客户端。客户端通常使用JavaScript库如jQuery来接收并处理这些数据。 在描述中提到的"以JQuery...
在配置中,`<param name="root">`用于指定返回的JSON对象的根节点,这里的`message`、`userInfo`和`userInfosList`分别对应Action中的属性。 现在,当客户端通过Ajax请求这些Action时,Struts2会自动将对应的Action...
这里`root`参数指定将Action中的`data`属性作为JSON响应的根对象。 5. **前端处理**:在前端,可以使用JQuery的Ajax函数来发送请求并处理JSON响应。例如: ```javascript $.ajax({ url: 'myAction.json', type: ...
这里的`root`参数指定了返回的对象属性,前端可以通过`response.message`获取数据。 5. **前端请求**:在客户端,使用JavaScript通过AJAX发起一个请求,如jQuery的`$.ajax`: ```javascript $.ajax({ url: '/...
在这个例子中,我们可能需要配置一个JSON Result,使得Action可以返回JSON格式的数据。 2. **JSON Result**:Struts2提供了JSON插件,该插件允许Action直接返回JSON对象。要在struts.xml配置文件中,为Action添加一...
最后,需要注意的是,当使用`<param name="root">result</param>`时,返回的JSON字符串需要在客户端通过`eval()`函数进行转换,才能解析成JavaScript对象。而当直接配置`includeProperties`时,返回的JSON数据可以...
### 集合转JSON:Java中的实现方法与示例 在Java开发中,经常需要将数据转换为JSON格式,以便于在网络传输或与前端进行交互。本文将详细介绍如何使用Java将集合转换成JSON格式,并提供相关的代码示例。 #### 一、...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。当我们在Struts2框架中整合SSH...
本文将深入探讨一个具体的JSON接口实例,该实例展示了如何在金蝶云创系统中使用WebAPI进行数据保存操作。此示例基于金蝶云创提供的核心库(如`Kingdee.BOS.Core.DynamicForm`等),并通过调用特定的服务来实现数据的...
这里的`AjaxAction`类会执行相应的业务逻辑,并将结果封装到名为`result`的属性中。 2. **创建AjaxAction**:在Java后端,`AjaxAction`需要实现业务逻辑并返回JSON数据。例如,它可能从数据库获取数据,然后将数据...
如果需要自定义JSON输出,例如排除某些属性或添加额外的字段,可以在配置中指定`root`、`includeProperties`和`excludeProperties`等属性。例如: ```xml <result type="json"> <param name="root">...
在Struts2中集成JSON,可以方便地将服务器端处理的结果以JSON格式传递给前端,简化数据传输并提高应用性能。 一、Struts2与JSON集成的必要性 在传统的Web开发中,服务器通常返回HTML页面来更新客户端视图。然而,...