由于Spring中的对象可以获取子对象,但json输出的时候会一股脑全部输出。默认的sojo还问题不大,因为它只输出一层。而jsonlib可能就要报错了。
还好spring jsonView中提供了属性过滤的功能。
1.在xml中明确使用JsonConfigSupport
<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView">
<property name="jsonWriter">
<ref bean="sojoJsonWriter" />
</property>
<property name="jsonErrors">
<list>
<ref bean="statusError" />
<ref bean="modelflagError" />
</list>
</property>
</bean>
<bean name="sojoJsonWriter"
class="org.springframework.web.servlet.view.json.writer.sojo.SojoJsonStringWriter">
[color=red]<property name="enableJsonConfigSupport">
<value>true</value>
</property>[/color]
</bean>
2.在代码中加入绑定
@InitBinder
protected void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder) throws Exception {
JsonWriterConfiguratorTemplateRegistry registry = JsonWriterConfiguratorTemplateRegistry
.load(request);
registry
.registerConfiguratorTemplate(new SojoJsonWriterConfiguratorTemplate() {
@Override
public SojoConfig getJsonConfig() {
SojoConfig config = new SojoConfig();
String[] excludes ={"roles"};
config.setExcludedProperties(excludes);
return config;
}
});
}
这样就可以了。jsonlib的差不多。
分享到:
相关推荐
4. **返回JSON数据**:在Action的方法执行完毕后,由于配置了`json`结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给客户端。如果需要自定义JSON输出,可以通过`@ResultType`注解指定特定的JSON结果...
4. **模型对象的序列化**:为了将Java对象转换为JSON,你需要确保对象的所有属性都支持getter和setter方法,这样JSON库才能正确地序列化和反序列化对象。 5. **安全考虑**:在处理JSON数据时,要注意防止JSON注入...
Spring的JAR包包括核心容器(如spring-context、spring-beans)、数据访问/集成(如spring-jdbc、spring-tx)、Web支持(如spring-web、spring-webmvc)等模块。在SSH整合中,主要依赖的是Spring的IoC容器和AOP功能...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。当我们在Struts2框架中整合SSH...
- `ognl.jar`:Object-Graph Navigation Language,用于表达对象属性的访问和操作,是Struts 2中的主要表达式语言。 - `freemarker.jar`:FreeMarker是一个模板引擎,用于生成动态HTML、XML或其他格式的文本输出,...
- **struts2-spring-plugin.jar**:整合Spring框架,实现依赖注入,管理Action和Service等对象。 3. **依赖的库** - **ognl.jar**:Object-Graph Navigation Language,用于表达式语言,支持Action属性与视图层的...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它极大地简化了在Java EE平台上构建动态Web应用的过程。在Java社区中,Struts2是广受欢迎的框架之一,因其强大的功能和灵活性而受到...
7. **ognl.jar**:Object-Graph Navigation Language(OGNL)是Struts2中使用的表达式语言,用于访问和操作对象属性。 8. **freemarker.jar** 和 **struts2-freemarker-plugin.jar**:Freemarker是一个模板引擎,...
- EL简化了JSP中的表达式,提供了简洁的语法来访问JSP作用域中的对象属性。 - JSTL是一组标准标签库,如`fmt`(格式化)、`c`(条件和循环)、`sql`(数据库操作)等,用于增强JSP的功能和可读性。 5. **MVC...
它基于Model-View-Controller(MVC)设计模式,提供了一种组织应用程序代码的结构,并简化了开发过程。Struts2的核心功能依赖于一系列的JAR(Java Archive)文件,这些文件包含了框架的各种组件和服务。下面将详细...
- `ValueStack`:Struts2使用ValueStack来管理模型对象,视图可以直接通过OGNL访问栈顶的对象属性。 6. **过滤器Dispatcher**: - Struts2的入口点是`org.apache.struts2.dispatcher.FilterDispatcher`(在新版本...
- **Value Stack**:值栈是Struts2用于存储Action属性和模型对象的地方,它可以简化视图层的数据传递。 - **Freemarker / JSP**:Struts2支持使用FreeMarker或JSP作为视图技术,方便快速地创建动态页面。 2. **...
{12.22}view}{187}{section.12.22} {12.23}index, rowid}{187}{section.12.23} {12.24}sequence}{189}{section.12.24} {12.25}PL/SQL}{189}{section.12.25} {13}JDBC}{191}{chapter.13} {13.1}forName}{191}{...
学习Java的基础语法、类、对象、接口、异常处理、多线程和输入输出流等是设计Java Web项目的前提。 2. **Servlet与JSP**:Servlet是Java EE中用于处理HTTP请求的服务端组件,而JSP(JavaServer Pages)则是一种动态...
2. `@JsonView`注解:如果你的API需要服务于不同类型的客户端,可以定义不同的视图(Views),并在序列化时指定要使用的视图,以控制哪些字段应被包含。 3. 自定义`JsonSerializer`和`JsonDeserializer`:当标准的...
关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...