Java Action是Struts2框架中一個非常重要的組件,它用于接收請求并處理業(yè)務(wù)邏輯,然后將結(jié)果返回給用戶。在實際開發(fā)中,我們經(jīng)常需要將處理結(jié)果以JSON格式返回給前端頁面,這就需要使用Java Action JSON。
public class DemoAction extends ActionSupport { private String name; private int age; //getter和setter方法省略 public String execute() { Map<String, Object> map = new HashMap<String, Object>(); map.put("name", name); map.put("age", age); JSONObject jsonObject = JSONObject.fromObject(map); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/json;charset=UTF-8"); PrintWriter out = null; try { out = response.getWriter(); out.write(jsonObject.toString()); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) out.close(); } return null; } }
以上代碼是一個簡單的Java Action,它首先將需要返回的數(shù)據(jù)放入一個Map中,然后將Map轉(zhuǎn)換為JSON格式的數(shù)據(jù),最后使用HttpServletResponse對象將JSON數(shù)據(jù)返回給前端頁面。
在實際開發(fā)中,我們還可以使用Struts2框架提供的JSON插件來簡化這個過程。只需要在struts.xml配置文件中添加以下代碼:
<package name="json" extends="json-default"> <action name="demo" class="action.DemoAction"> <result type="json"></result> </action> </package>
然后在Java Action中使用一個POJO類來存儲需要返回的數(shù)據(jù):
public class DemoAction extends ActionSupport { private User user; //getter和setter方法省略 public String execute() { user = new User("Tom", 20); return SUCCESS; } }
最后,在前端頁面中可以通過JSON對象來獲取數(shù)據(jù):
$.getJSON("demo.action", function(data) { alert("Name: " + data.user.name + "\n" + "Age: " + data.user.age); });
上述代碼中,我們使用jQuery庫中的getJSON方法來發(fā)送請求并獲取返回的JSON數(shù)據(jù)。然后通過data對象來獲取Java Action返回的數(shù)據(jù)。