DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 利用JSON插件進行數據交換格式
利用JSON插件進行數據交換格式
編輯:XML詳解     

JSON(Java Script Object Notation),是一種語言無關的數據交換格式。 JSON插件是Structs 2 的AJax插件,通過利用JSON插件,開發者可以很方便,靈活的利用AJax進行開發。

JSon是一種輕量級的數據交換格式,JSon插件提供了一種名為JSon的Action ResultType 。一旦為Action指定了該結果處理類型,JSON插件就會自動將Action裡的數據序列化成JSON格式的數據,並返回給客戶端物理視圖的JavaScript。簡單的說,JSON插件允許我們在JavaScript中異步的調用Action。

  • 更好更快更高效解析JSON說明
  • 探索非同凡響的JSon數據格式說明
  • 講述JSON WEB站點服務器相應錯誤
  • 詳數JSON版本的種種調用與測試
  • 如何更好的易於機器解析和生成JSON輕量級

而且Action不需要指定視圖來顯示Action的信息顯示而是由JSON插件來負責具體將Action裡面具體的信息返回給調用頁面。JSon的數據格式可簡單如下形式: person = { name: 'Jim',age: 18,gender: 'man'}。

如果action的屬性很多,我們想要從Action返回到調用頁面的數據。這個時候配置includeProperties或者excludePropertIEs攔截器即可。而這2個攔截器的定義都在struts2的json-default包內,所以要使用該攔截器的包都要繼承自JSon-default。

  1. <struts> 
  2.     <constant name="struts.objectFactory" value="spring"/>       
  3.     <include file="struts-admin.XML"></include>   
  4.     <package name="default" extends="JSon-default">   
  5.         <action name="person" class="com.person.PersonAction" method="vIEw"> 
  6.         <result type="JSon"> 
  7.            <param name="includePropertIEs">             
  8.             person\.name,persoon\.age,person\.gender             
  9.            </param>>             
  10.         </result> 
  11.         </action> 
  12.     </package>         
  13. </struts> 

利用Struts 2的支持的可配置結果,可以達到過濾器的效果。Action的處理結果配置支持正則表達式。但是如果返回的對象是一個數組格式的JSon數據。比如peson Bean中有對象persion1...person9,而我只要JSON插件,則可以用如下的正則表達式。

  1. <struts> 
  2.     <constant name="struts.objectFactory" value="spring"/>       
  3.     <include file="struts-admin.XML"></include>   
  4.     <package name="default" extends="JSon-default">   
  5.         <action name="person" class="com.person.PersonAction" method="vIEw"> 
  6.         <result type="JSon"> 
  7.            <param name="includePropertIEs">             
  8.             person\.name,persoon\.age,person\.gender             
  9.            </param>>             
  10.         </result> 
  11.         </action> 
  12.     </package>         
  13. </struts> 
  14. 利用Struts 2的支持的可配置結果,可以達到過濾器的效果。Action的處理結果配置支持正則表達式。  
  15. 但是如果返回的對象是一個數組格式的Json數據。比如peson Bean中有對象persion1...person9,而我只要person1的JSon數據,  
  16. 則可以用如下的正則表達式。  
  17. <struts> 
  18.     <constant name="struts.objectFactory" value="spring"/>       
  19.     <include file="struts-admin.XML"></include>   
  20.     <package name="default" extends="JSon-default">   
  21.         <action name="person" class="com.person.PersonAction" method="vIEw"> 
  22.         <result type="JSon"> 
  23.            <param name="includePropertIEs">             
  24.             person\[\d+\]\.person1  
  25.            </param>>             
  26.         </result> 
  27.         </action> 
  28.     </package>         
  29. </struts> 
  30. excludePropertIEs攔截器的用法與此類同,如果攔截的僅僅是一個對象,如果攔截掉person Bean的整個對象。  
  31. <struts> 
  32.     <constant name="struts.objectFactory" value="spring"/>       
  33.     <include file="struts-admin.XML"></include>   
  34.     <package name="default" extends="JSon-default">   
  35.         <action name="person" class="com.person.PersonAction" method="vIEw"> 
  36.         <result type="JSon"> 
  37.            <param name="excludePropertIEs">             
  38.             person  
  39.            </param>>             
  40.         </result> 
  41.         </action> 
  42.     </package>         
  43. </struts> 

需要注意的是,如果用JSON插件把返回結果定為JSON。而JSON的原理是在ACTION中的get方法都會序列化,所以前面是get的方法只要沒指定不序列化,都會執行,那麼可以在該方法的前面加注解聲明該方法不做序列化。

  1. public String getName()   
  2.  {  
  3. return this.name;  
  4.  }  
  5. 需要引入 import com.googlecode.jsonplugin.annotations.JSON;  
  6.  
  7. @JSON(serialize=false)  
  8. public User getUser() {  
  9.     return this.User;  
  10. }  
  11.  
  12. @JSON(format="yyyy-MM-dd")  
  13. public Date getStartDate() {  
  14.     return this.startDate;  
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved