安裝JSON插件提供了一種名為json的ResultType,一旦為某個Action指定了一個類型為json的Result,則該Result無需映射 到任何視圖資源。因為JSON插件會負責將Action裡的狀態信息序列化成JSON格式的數據,並將該數據返回給客戶端頁面的 JavaScript。
簡單地說,安裝JSON插件允許我們在JavaScript中異步調用Action,而且Action不再需要使用視圖資源來顯示該Action裡的狀態信息,而是由JSON插件負責將Action裡的狀態信息返回給調用頁面——通過這種方式,就可以完成AJax交互。
提供了一種可插拔方式來管理插件,安裝Struts2的JSON插件與安裝普通插件並沒有太大的區別,一樣只需要將Struts2插件的JAR文件復制到Web應用的WEB-INF/lib路徑下即可,安裝JSON插件按如下步驟進行:
- import com.googlecode.jsonplugin.annotations.JSON;
- import com.opensymphony.xwork2.Action;
- public class JSonTestAction {
- private String username;
- private String passWord;
- private boolean success;
- private Map map = new HashMap();
- public String checkLogin(){
- if(this.getPassWord()!="" && this.getUsername()!=""){
- //第一種方式 將要返回給頁面的數據放到HashMap裡生成數據格式“{"map"://{"success":true},"username":"ww"}”
- //map.put("success", true);
- //第一種方式 將要返回給頁面的數據放到變量裡生成數據格式“{"map"://"success":true,"username":"ww"}”
- success = true;
- return Action.SUCCESS;
- }else{
- return Action.INPUT;
- }
- }
- @JSON(serialize=false)
- public String getPassWord() {
- return passWord;
- }
- public void setPassword(String passWord) {
- this.passWord = passWord;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public boolean isSuccess() {
- return success;
- }