1. 使用json-default序列化json數據
1.1 導入struts2-json-plugin的jar包
- 在struts下載包中可以找到
1.2 設置將被序列化爲json數據
public class Demo4Action extends ActionSupport {
//即將被序列化爲json的數據,對應struts.xml的result的root參數值
private List<Student> students=new ArrayList<Student>();
public String getStudentList() {
Student s1=new Student(1,"張三");
Student s2=new Student(2,"李四");
Student s3=new Student(3,"王五");
students.add(s1);
students.add(s2);
students.add(s3);
return SUCCESS;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
}
1.3 struts.xml配置
<!-- 包要繼承json-default纔可以使用json格式的result -->
<!-- 要使用json-default需要導入struts2-json-plugin的jar包 -->
<package name="default" extends="struts-default,json-default" namespace="/">
<action name="*Demo4" class="com.action.Demo4Action" method="{1}">
<result name="success" type="json">
<!-- root指定被序列化爲json格式的屬性,對應Action中的students屬性 -->
<param name="root">students</param>
<!-- 指定是否序列化值爲空的屬性 -->
<param name="excludeNullProperties">true</param>
<!-- includeProperties參數指定在根對象中需要序列化的屬性,值可以使用通配符 -->
<!-- 【[】【]】【.】都要用\轉義,\d+表示0到無限大的整數,\[\d+\]表示students的所有子屬性 -->
<!-- \.表示對象的屬性,\[\d+\]\.name表示studentList的所有子屬性(這裏是Student對象)的name屬性 -->
<!-- <param name="includeProperties">\[\d+\]\.name</param> -->
<!-- 排除序列化的屬性 -->
<!-- <param name="excludeProperties">id</param> -->
</result>
</action>
</package>