ActionSupport返回JSON数据是Struts2中的一种常用方式。
在Struts2中,可以通过ActionSupport类的一个方法来实现将Java对象转化为JSON字符串,并将其返回给前端页面。具体方法如下:
public class MyAction extends ActionSupport { private String name; private int age; // getter和setter方法 public String execute() { Map<String,Object> map = new HashMap<>(); map.put("name",name); map.put("age",age); JSONObject json = JSONObject.fromObject(map); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/json;charset=utf-8"); PrintWriter out = response.getWriter(); out.write(json.toString()); out.flush(); out.close(); return null; } }
上面的代码中,我们使用了Map来存储要返回的数据,然后将其转化为JSON对象,并将其写入response中。同时,我们设置了response的Content-Type为"application/json;charset=utf-8",以指定返回的数据格式为JSON。
在前端页面中,我们可以通过AJAX来获取从Action返回的JSON数据:
$.ajax({ url: 'myAction.action',type: 'POST',dataType: 'json',success: function(data) { alert(data.name + ' is ' + data.age + ' years old.'); } });
上述代码中,我们使用了jQuery的AJAX方法来请求Action返回的JSON数据,并在请求成功后将数据解析出来并进行处理。
总的来说,ActionSupport返回JSON数据是Struts2中处理Ajax请求的常用方式,可以方便地将Java对象转化为JSON格式并返回给前端页面。