为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件可以在Struts2压缩包中的lib目录下找到。
2.json插件执行原理时序图
点击查看原图
3.将struts.xml里面的
-
<
package
name
=
"default"
extends
=
"struts-default"
>
<package name="default" extends="struts-default">
改为
-
<
package
name
=
"default"
extends
=
"json-default"
>
<package name="default" extends="json-default">
4.Action中的配置
-
<
action
name
=
"testAction"
class
=
"com.json.action.TestAction"
method
=
"testMethod"
>
-
<
interceptor-ref
name
=
"json"
/>
-
<
result
type
=
"json"
/>
-
</
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
;
-
...
-
}
public class BaseAction extends ActionSupport implements {
private Person person = null;
...
}
bean类
-
public
class
Person {
-
private
String name;
-
private
int
age;
-
...
-
}
public class Person {
private String name;
private int age;
...
}
我们只要输出person对象的name属性值,配置如下
-
<
result
type
=
"json"
>
-
<
param
name
=
"root"
>
person.name
</
param
>
-
</
result
>
<result type="json">
<param name="root">person.name</param>
</result>
5.2. excludeNullProperties 参数:表示是否去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值。
-
<
result
type
=
"json"
>
-
<
param
name
=
"excludeNullProperties"
>
true
</
param
>
-
</
result
>
<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
>
<result type="json">
<param name="ignoreHierarchy">false</param>
</result>
5.4. includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。
如:输出person的所有属性
-
<
result
type
=
"json"
>
-
<
param
name
=
"includeProperties"
>
person.*, person\.name
</
param
>
-
</
result
>
<result type="json">
<param name="includeProperties">person.*, person\.name</param>
</result>
5.5. excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同5.4.
相关推荐
这篇博客将深入讲解Struts2的JSON插件配置,并通过实例“strutsJson”来演示具体用法。 首先,让我们了解JSON插件的基本配置。在Struts2框架中,我们需要在`struts.xml`配置文件中引入JSON插件的相关配置。这通常...
为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址 http://code.google.com/p/jsonplugin/ 1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录 注:struts2...
### Struts2 JSON插件入门知识点详解 #### 1. 依赖包 - **Struts2 必需的 6 个 jar 包** - `commons-fileupload-1.2.2.jar`: 提供了文件上传功能的支持。 - `commons-io-2.0.1.jar`: 用于处理I/O操作,简化输入...
- 引入Struts2的核心库和JSON插件库到项目中。 - 在`struts.xml`配置文件中启用JSON结果类型,并配置相应的拦截器栈。 ```xml <constant name="struts.enable.SlashesInActionNames" value="true"/> ...
Struts2与JSON的整合主要依赖于JSON插件的支持,通过在`struts.xml`中配置Action以及指定结果类型为JSON,可以轻松实现将Java对象转换成JSON格式输出。这种整合方式不仅提高了数据传输效率,还简化了前端解析过程,...
Struts2框架详解 Struts2是Java Web开发中的一款广泛应用的开源MVC框架,它构建在Apache Struts 1的基础上,提供了更为强大的功能和更好的灵活性。Struts2旨在简化Web应用开发,通过将表现层与业务逻辑层解耦,提高...
#### 二、Struts2 JSON插件详解 JSON插件是Struts2中非常实用的一个插件,主要用于简化JSON数据的处理过程。随着AJAX技术的广泛应用,JSON格式的数据交互变得越来越普遍。因此,了解并掌握Struts2 JSON插件的使用...
当Action执行完成后,如果返回`Action.SUCCESS`,并且已经配置了`json`类型的Result,那么Struts2 JSON插件就会介入,将Action中这些属性及其值序列化成JSON格式。这里,你可以使用注解`@JSON`来自定义属性在JSON...
在Struts2中,要启用JSON插件,你需要在`struts.xml`配置文件中添加相关的配置。 ```xml <constant name="struts.enable.SMD" value="true"/> <package name="json-default" extends="struts-default"> *" class=...
- **JSON插件的加入**:在struts2.xml文件中加入JSON插件,以便于处理Ajax请求返回的JSON数据格式,这对于实现动态页面更新非常关键。 #### 2. 使用JQuery UI插件实现高级效果 - **选项卡效果的实现**:通过使用...
2. **引入依赖**:添加struts2的核心库、JSON插件(jsonplugin.jar)、Struts2-Spring插件、Hibernate库、Spring库、JDBC驱动以及jQuery库。 3. **数据库设计**:创建合适的数据库表并能够在MyEclipse中管理。 4. **...
- `struts2-json-plugin-2.1.8.1.jar`:提供JSON插件支持。 - `json-lib-2.1.jar`:JSON库,用于处理JSON数据。 - `commons-collections-3.2.jar`:提供了集合工具类,用于集合操作。 - `commons-beanutils-...
Struts2通过Struts2-jquery插件或JSON结果类型,支持异步更新,提供更丰富的用户体验。 总的来说,Struts2作为一个成熟的Java web框架,具有丰富的特性和良好的社区支持,为开发者提供了高效且灵活的开发工具,是...
8. **Plug-in Architecture**:Struts2的插件架构使得扩展和集成其他功能变得容易,如Tiles、Hibernate等。 9. **OGNL(Object-Graph Navigation Language)**:OGNL是Struts2默认使用的表达式语言,用于在Action、...
**Struts2配置详解** 1. **struts2核心库** `struts2`的jar文件是框架运行的基础,包含核心控制器、拦截器、结果类型和其他必要的组件。这些jar文件提供了处理请求、响应以及与其他组件交互的能力。 2. **.struts...
2. **配置文件详解**:在`ch01`和`ch02`中,可能会介绍`struts.xml`配置文件的用法。这个文件定义了Action的配置,包括Action类的路径、结果视图的跳转以及拦截器的使用等。 3. **Action与结果**:`ch03`系列文件...