-
关于通过struts的json插件序列化excludeProperties的问题。0
关于通过struts的json插件序列化excludeProperties的问题。
public class XXXView { private Server serverInfo; .... private Map<String,List<OtherPOJO>> checkDatas = new HashMap<String,List<OtherPOJO>>(); private List<XXXView> children = new ArrayList<XXXView>(); private List<XXXView> parent = new ArrayList<XXXView>(); } public class OtherPOJO{ private String property1; private String property2; private String property3; private List<XXX> property4; }
现在通过struts的json插件序列化List<XXXView>,
但是我想把序列化的OtherPOJO对象里的property2和
这样不行吧,没法排除children 和parent集合里面对应属性
<param name="excludeProperties">
view\[\d+\]\.checkDatas\[\d+\]\[\d+\]\.property2,
view\[\d+\]\.checkDatas\[\d+\]\[\d+\]\.property4,
</param>
2014年3月28日 09:03
目前还没有答案
相关推荐
这篇博客将深入讲解Struts2的JSON插件配置,并通过实例“strutsJson”来演示具体用法。 首先,让我们了解JSON插件的基本配置。在Struts2框架中,我们需要在`struts.xml`配置文件中引入JSON插件的相关配置。这通常...
### Struts2 JSON插件入门知识点详解 #### 1. 依赖包 - **Struts2 必需的 6 个 jar 包** - `commons-fileupload-1.2.2.jar`: 提供了文件上传功能的支持。 - `commons-io-2.0.1.jar`: 用于处理I/O操作,简化输入...
1. **配置插件**:首先,需要在Struts2的配置文件中添加Struts2 JSON插件的依赖。这通常通过在`struts.xml`文件中包含`struts-plugin.xml`来实现,确保插件已经被加载并启用。 ```xml <constant name="struts....
这样,当Action执行完成后,如果有`json`类型的结果,JSON插件会自动介入,将Action中的数据序列化。 在配置文件中,可以对序列化结果进行精细化控制。例如: - 可以通过`includeProperties`参数指定只序列化特定...
- 如果需要处理复杂的JSON结构,可以利用`@Result`的`includeProperties`或`excludeProperties`参数来指定序列化的对象属性。 通过以上步骤,你可以在Struts2项目中有效地集成和使用JSON,提升应用程序的交互性和...
除了通过配置文件来控制序列化过程外,还可以使用注解来更细粒度地控制序列化行为。例如,可以使用`@JSON`注解来指定特定字段的序列化规则: ```java import com.googlecode.jsonplugin.annotations.JSON; @JSON...
Struts2是一个流行的Java web框架,它允许开发者...总的来说,Struts2通过JSON插件极大地简化了Java应用与前端之间的数据交换,而定制JSON输出则提供了更大的灵活性,使得你可以根据业务需求精确地控制数据传输的内容。
6. **JSON插件的高级用法**:Struts2的JSON插件还支持自定义序列化配置、排除某些属性、包含特定属性、处理日期格式等。例如,可以通过配置`struts.json.includeProperties`和`struts.json.excludeProperties`来控制...
这里的`Message`类需要有对应的getter和setter方法,以供Struts2的JSON插件进行序列化。 在Struts2的配置文件中,原本的配置是这样的: ```xml <result type="json"> <param name="includeProperties">list ...
开发者可以通过`params`、`excludeProperties`等属性控制哪些参数被序列化到JSON。 5. **安全性考虑**:使用JSON时,要防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。Struts2提供了一些安全配置选项,例如`...
- 如果不希望某个属性被序列化到JSON,可以使用`@JSON(serialize=false)`。 - 对于日期,可以使用`@JSON(format="yyyy-MM-dd")`来指定日期的格式。 4. **在Action中处理逻辑**: - 定义一个Action类,例如`...
默认情况下,使用json插件可能不会将父类的field默认存放到JSON数据中。如果你需要包含这些父类的属性,可以通过设置<param name="ignoreHierarchy">false来实现。 除此之外,还可以定义返回的数据格式为JSON列表...
在对应的Action类中,你需要返回一个Java对象或Map,这些数据会被自动序列化成JSON格式。例如: ```java public class YourActionClass extends ActionSupport { private YourDataObject data; // Getters ...
2. **Struts2 JSON插件**: 该插件支持JSON数据格式的序列化和反序列化。 - 推荐使用版本:`struts2-json-plugin-2.2.3.jar` - 获取方式:可以从Maven仓库或Struts2官方网站下载。 #### 三、实现步骤 接下来我们将...
4. **JSON结果类型配置**:Struts2的JSON插件提供了一些配置选项来控制JSON序列化的行为,比如是否包含动作的属性、排除特定字段等。可以在`struts.xml`中的`<result>`标签内进行设置,例如: ```xml ...
总结来说,解决Struts2中JSON相互引用死循环的问题,可以通过配置Struts2的结果类型来控制序列化的属性,或者直接在Action方法上使用注解来标记不需序列化的属性。这两种方式都可以有效地避免无限递归和资源消耗,...
在服务器端,配置Action时可指定哪些属性不应被序列化,通过在`<result>`标签中添加`excludeProperties`参数来实现。例如: ```xml <result type="json"> <param name="excludeProperties"> file.fileContent, ...