昨天晚上遇到了一個bug,是ajax調用struts2里面的方法獲取json的問題,雖然現在那個問題沒有解決,但是各種百度后,發現對stuts2跟ajax的交互認識又深了。
## 一,如果設置Action返回的結果為json類型

如上圖,如果要這個action返回的結果為json,首先要指定包繼承為json-default,之后,在result里面,指明type="json"。
節點中還可以添加param參數,來指定序列化的參數:從哪兒開始序列化,序列化誰,不序列化誰。。。比如上圖,配置序列化的根節點為success,如果沒有配置的話,會默認序列化Action中所有提供get***()方法的屬性。如果制定了,則從root開始向下序列化。
## 二,Action中一些常用配置
如果配置文件中沒有配置root,可以在不需要序列化的方法上:

加上這個注解之后,會忽略對get**()的序列化。另外,在@JSON中還可以指定序列化的格式,名稱。
## 三,對實現Serializable接口的對象
一般序列化的時候會默認序列化非靜態的提供了get方法的成員變量。但是可以通過關鍵字transient指定不需要序列化的屬性。

但是對于實現Externalizable接口的類,這個關鍵字沒啥用。
## 四,struts2+ajax的一些坑
1,每次報錯,strtus2的報錯頁信息就會返回給ajax,并且是進入ajax的success方法中,(⊙﹏⊙)b。。。。。。。。
2,對于新手,不熟悉json的,又看不到json具體轉換過程的人來說,只能靠猜測序列化的時候報錯了
- 前言
- Spring簡化配置
- Spring中使用AspectJ實現AOP
- Spring中JDK的動態代理和CGLIB代理的區別
- Spring配置問題——元素 "context:component-scan" 的前綴 "context" 未綁定
- Hibernate中編程式事物的簡單使用
- 使用Spring為Hibernate配置聲明式事物
- Struts2+AJAX獲取json數據
- 中間件概述
- EJB(Enterprise Java Bean)概述
- JBoss 6.1安裝配置問題
- EJB對象的部署及客戶端調用簡單示例
- 有狀態的EJB對象和無狀態的EJB對象
- EJB遠程調用和本地調用
- MyBatis——入門select