通过ajax 的方式请求 action 。返回type='json'的result 。此时不需要物理视图。
但返回的JSON格式的值会将Action类中的所有的属性全部遍历序列化。即转换成{属性:值}的格式返回给回调函数。
有些Action类中的属性我们并不想序列化。
解决方案:在返回类型为json的Result 中配置 子元素的属性 includeProperties(白名单) 或 excludeProperties(黑名单)
<result name="gradejson" type="json">
<param name="includeProperties">
status
</param>
</result>
上面配置是基本数据类型的属性。如果返回的数据类型是集合类型。则应如下配置。(list的类型为List)
<result name="clazzjson" type="json">
<param name="includeProperties">
list.*
</param>
</result>
如果返回的值中的类与别的类有关联关系。
JSON序列化会以无穷举得方式将所有有关联的对象数据全部抓取。
解决方案:@JSON 注解。
public class Clazz implements Serializable {
private static final long serialVersionUID = -2403727636192220253L;
private int id;
private Grade grade;//
private String clazzName;//
private String clazzInfo;//
private int count;
private Date createDate;//
private transient Set<Student>students;//
@JSON(serialize=false)
public Grade getGrade() {
return grade;
}
public void setGrade(Grade grade) {
this.grade = grade;
}
public String getClazzName() {
return clazzName;
}
public void setClazzName(String clazzName) {
this.clazzName = clazzName;
}
@JSON(serialize=false)
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
将@JSON(serialize=false)
配置在不想序列化的关联属性的getter方法。JSON序列化就会忽略这些属性。
分享到:
相关推荐
- **@JsonIgnore**:用于在进行JSON序列化时忽略特定属性。 - **@Id**:标记一个实体类中的主键字段。每个实体类只能有一个字段被标记为`@Id`。 - **@GeneratedValue**:用于指定主键的生成策略。 - **strategy*...
它是ExtJs与Struts2之间数据传输的理想选择,因为JSON数据可以直接被JavaScript对象表示,无需额外的序列化和反序列化步骤。 在给定的例子中,为了实现数据交互,首先定义了Hibernate映射文件(ORDER.XML 和 CUSTOM...
DWR处理了JSON或XML的序列化和反序列化,简化了跨域通信问题。 **Dojo** 是一个JavaScript工具库,提供了丰富的UI组件、动画效果和数据绑定等功能,有助于创建交互式的Web应用。在这个Demo中,Dojo可能被用来创建...
这个"自己整合的一个ssh框架jar包(包含了json)"很可能已经将Struts2的JSON插件、Spring对JSON的支持以及Hibernate可能涉及的JSON序列化和反序列化功能集成在一起,以便于开发者在不需额外配置的情况下,实现JSON...
整个过程涉及到了前端与后端的交互、数据库查询优化、以及JSON数据的序列化和反序列化等多个技术点。 总的来说,"Struts2+Hiberante+ajax+Mysql 三级联动"项目展示了如何利用这些技术进行高效的Web开发,特别是在...
值得注意的是,代码中注释掉的部分原本是用于处理JSON序列化的,目的是在级联查询时排除不希望显示的关联对象(newstype)。在实际应用中,这可能会影响前端的数据显示,因此需要谨慎处理。 最后,我们看到代码片段...
{7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的序列化}{109}{section.7.5} {7.6}InputStream与OutputStream}{109}{section.7.6} {7.6.1}FileInputStream}{109}{subsection.7.6.1} {7.6.2}...
4. **DWR**将结果序列化为JSON格式,并发送回前端JavaScript。 5. **前端JavaScript**接收并处理返回的结果,更新UI。 #### 八、总结 本案例通过使用DWR实现了省市县三级联动的功能,涉及到了多个技术栈的集成应用...
这个注解指示JSON序列化时忽略这个集合,避免在客户端尝试解析空集合。如果确实需要在客户端使用这些关联数据,那么应当在Service层预先查询并填充这些数据,确保它们在返回给客户端时是完整的。 此外,对于其他...
12. **数据转换和序列化**:`JSONDeserializer`可能用于将接收到的JSON数据转换为Java对象,便于处理。 综上所述,这个Java代码涉及了文件上传的处理、业务逻辑的组织、数据库操作、依赖注入等多个方面,构成了一个...