Java Action 是 Struts2 框架中處理客戶端請求的控制器,它可以返回 ModelAndView、String 或 void。其中,返回 String 類型的 Action 可以在 struts.xml 中配置返回的 JSP 頁面,而返回 void 類型的 Action 則不需要返回任何視圖,可以直接結束請求的處理。此外,還可以通過修改 Action 的配置,讓其返回一個 JSON 字符串,方便前端進行異步數據請求。
// 返回 JSON 字符串的 Java Action public class DemoAction extends ActionSupport { private Mapdata; public String execute() throws Exception { data = new HashMap<>(); data.put("name", "張三"); data.put("gender", "男"); data.put("age", "25"); return SUCCESS; } public Map getData() { return data; } public void setData(Map data) { this.data = data; } }
在上述代碼中,我們通過定義一個 Map 類型的屬性,來存儲要返回的數據。在 execute 方法中,將數據存儲到 Map 中,然后返回 SUCCESS。此時,我們需要在 struts.xml 中進行配置,讓該 Action 返回一個 JSON 字符串。
首先,我們需要在 struts.xml 中配置 JSON 插件,這里我們使用了通配符,表示將要序列化的屬性為 data 的所有子屬性。然后,我們需要新增一個名為 json 的 package,將其繼承默認的 json-default package,并在其中定義一個名為 demoAction 的 Action,將其返回值類型設置為 JSON。這樣,在請求 demoAction 時,就可以返回一個 JSON 字符串了。