Struts返回json格式的結果

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章