struts2的action中方法重複執行

2021-06-08 08:19:52 字數 691 閱讀 1493

struts2中使用json外掛程式執行ajax處理時,如果方法名是get方法的時候,方法會莫名其妙的執行兩次。

原因:struts2 中json的原理是在action中的get方法都會序列化,前面是get的方法只要沒指定不序列化,都會在序列化時再執行一次

解決方法

1、action中的業務方法前不要以get開頭 (屬性的get set 除外)

2、用@json(serialize=false)指定方法不序列化

@controller

@parentpackage(value="json-default")

@namespace("/middleware")

@results()

public class jvminfoaction extends baseaction

}

上面的getrealjvminfo業務方法一次請求,結果執行了兩次,改為realjvminfo,結果只執行一次。

還有一種很好的解決辦法在@result註解中加上params=,json外掛程式將只序列化指定的jvminfo物件,這應該是一種最佳實踐。

注意:此問題只出現在使用struts2的json外掛程式struts-json-plugin的情況下,在使用springside的struts2utils.renderjson方法向前台傳值沒有此問題發生。

struts2 中action返回的型別

在struts2框架中,當action處理完之後,就應該向使用者返回結果資訊,該任務被分為兩部分 結果型別和結果本身。結果型別提供了返回給使用者資訊型別的實現細節。結果型別通常在struts2中就已預定義好了 見下表 或者是由外掛程式提供,開發人員也可以自定義結果型別。預設配置的結果型別是dispa...

struts2的 action中得到標籤中的內容

最近用到struts2 標籤,要求在action中獲取標籤中的內容 出現這個問題後,發現確實很難實現,所以就google了下,但獲取答案卻不理想 但研究struts2的demo後,發現他們可以正常獲取的,所以就研究了下,發現問題其實很簡單 在此,借用下google時,搜尋到的乙個問題 然後提交到te...

struts2配置action驗證

背景 接昨天的struts2框架搭建 新增對action關聯form表單中input框輸入的內容進行校驗 操作測試完成後文件如下圖 使用者名稱不能為空 使用者名稱輸入不合法,必須為長度在6 16中間的數字或字母 true 密碼不能為空 密碼輸入不合法,必須為長度在6 16之間的數字或者字母 總結 配...