为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址
http://code.google.com/p/jsonplugin/
1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录
注:struts2的json插件有两个版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json插件时启 动发生异常,提示找不到相关方法,后来就换成了低版本的0.32一切OK,仔细查看文档后发现struts2的2.0.*版本的对应插件的0.32版 本,struts2.1.*版本对应0.34版本
2.json插件执行原理时序图
3.将struts.xml里面的配置修改
<package name="default" extends="struts-default">
改成:
<package name="default" extends="json-default">
4.Action中的配置
<action name="testAction" class="com.json.action.TestAction" method="testMethod"> <interceptor-ref name="json" /><!--处理以JSON文本提交的请求--> <result type="json" /> <!--将action的bean属性以json字符串返回浏览器--> </action>
注:根据需要选择interceptor和result配置
5. 你会发现前台返回的json字符串,是把action中的所有属性全部转化为json字符串返回给浏览器了,但是我有时候需要根据实际情况返回部分结果,如何对json的结果进行定制输出呢?result提供了一些参数替你解决这个问题
5.1. root参数:从返回结果中根据ognl表达式取出你需要输出的结果
如:action类
public class BaseAction extends ActionSupport implements { private Person person = null; ... }
bean类
public class Person {
private String name;
private int age;
...
}
我们只要输出person对象的name属性值,配置如下
<result type="json">
<param name="root">person.name</param>
</result>
5.2. excludeNullProperties 参数:表示是否去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值
<result type="json"> <param name="excludeNullProperties">true</param> </result>
5.3. ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:TestAction继承于BaseAction,那么TestAction中返回的json字符串默认 是不会包含父类BaseAction的属性值,ignoreHierarchy值默认为true,设置为false后会将父类和子类的属性一起返回。
<result type="json"> <param name="ignoreHierarchy">false</param> </result>
5.4. includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。
如:输出person的所有属性
<result type="json"> <param name="includeProperties">person.*, person\.name</param> </result>
5.5. excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同
转自
http://cqjava.iteye.com/blog/465495
http://yxgyh.iteye.com/blog/686317
相关推荐
在Struts2中,JSON插件提供了一个名为`json`的ResultType,这个ResultType可以将Action中的状态信息转换成JSON格式的数据并直接返回给客户端,而无需通过传统的视图资源(如JSP、Freemarker等)进行渲染。...
为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址 http://code.google.com/p/jsonplugin/ 1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录 注:struts2...
在Struts2中,JSON(JavaScript Object Notation)插件是用于处理JSON数据传输的重要组件,使得服务器与客户端之间能进行高效的数据交换。JSON格式因其简洁和易于解析的特性,在Web开发中广泛被用作API接口的数据...
通过以上介绍,我们可以看出JSONPlugin插件在Struts2中扮演着重要角色,简化了JSON数据的处理,使得Java后端与前端ExtJS的通信更加顺畅。理解并熟练使用这个插件,对于提升Web应用的用户体验和开发效率有着显著的...
总的来说,Struts2的JSON插件极大地简化了Java Web应用中的JSON数据处理,提高了开发效率。了解并熟练使用这个插件,对于提升Web应用的用户体验和响应速度具有重要意义。无论是进行简单的数据交换还是构建复杂的前后...
在这个过程中,我们通常会用到`json2.js`库来处理JSON数据在JavaScript端的解析和序列化,以及Struts2的`jsonplugin`来支持JSON响应。 首先,让我们详细了解一下`json2.js`。这个JavaScript库是由Douglas Crockford...
在Struts2中,JSON插件允许我们将Action的返回结果转换成JSON格式,从而可以与前端的AJAX请求进行交互。`jsonplugin-0.33.jar`包含了一组类和配置,使得Struts2能够轻松地支持JSON序列化和反序列化,这对于创建...
是struts的一个插件包
在Struts2中,JSONPlugin的引入极大地简化了服务器端与客户端之间的数据传输。通过这个插件,开发者可以将Action的结果直接转换为JSON格式,然后发送到客户端,由JavaScript进行处理。这种方式避免了传统方式中需要...
不同版本的插件可能适用于不同的Struts2框架版本,开发者应根据其项目所使用的Struts2版本选择合适的插件。 使用这些组件,开发者可以创建一个能够与前端通过JSON交互的Struts2应用。例如,前端使用Ajax发起请求,...
JSONPlugin-0.33.jar 是一个专门为Struts2框架设计的插件,主要用于扩展Struts2的功能,使其能够更好地支持JSON(JavaScript Object Notation)数据格式的处理。JSON是一种轻量级的数据交换格式,广泛应用于Web服务...
在文件列表中,`jsonplugin-0.33.jar`是Struts2 JSON插件的库文件,它包含了处理JSON相关功能的类和方法。要使用这个插件,我们需要将其添加到项目的类路径中,并在Struts2的配置文件(通常为struts.xml)中进行相应...
在Struts2中使用JSON(JavaScript Object Notation)可以方便地将服务器端的数据传输到客户端,通常用于AJAX请求或者创建RESTful API。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成...
JSON插件允许开发者轻松地将Java对象转换为JSON格式,以便在AJAX请求和响应中使用。在Struts2的showcase应用中,JSON插件通过FreeMarker模板来展示如何输出JSON结果,虽然这种方式有一定的灵活性,但不如直接使用...
在Struts2中,JSON作为一种轻量级的数据交换格式,常用于AJAX请求的响应,因为它的结构清晰、易于解析,且在网络传输中占用的带宽较小。JSONPlugin的引入,简化了开发者在Struts2应用中处理JSON的过程,无需手动编写...
"JsonPlugin.tld"是Tag Library Descriptor文件,用于定义Struts2插件中的自定义标签。在这个文件中,你可以找到与JSON相关的标签定义,如`json:json`或`json:object`等,这些标签可以方便地在JSP页面上使用,以生成...
这可以实现struts和json的整合 <struts> <action name="JsonPlugin" class="testJson.JsonPluginAction"> </action> </struts>
在Struts2中,JSONPLUGIN扮演着关键角色,允许Action(控制器)返回JSON响应,供前端JavaScript进行处理。这个插件使得开发者可以轻松地将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象,极大地...
3. **配置问题**:检查Struts2的配置文件(如struts.xml)中的配置是否正确,特别是关于JSON插件的部分。 #### 三、总结 通过以上步骤,我们可以利用Struts2框架结合jQuery与JSON轻松地实现Ajax功能。需要注意的是...