我正在使用下面的代码来使用struts2-hibernate获取json。在方法getZone中,我使用HttpServletResponse response= (HttpServletResponse) ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE);
来返回json。代码工作正常,但我有点困惑,想知道struts2中是否还有其他我们可以实现相同的工作,比如使用其他struts2内置的HttpServletResponse方法。
任何人都可以告诉我一些解决方案吗
public void getZone() {
HttpServletResponse response= (HttpServletResponse) ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE);
try {
JSONObject zoneAreas = Hibernateclass.getZone(Id, organId);
response.getWriter().write(zoneAreas.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
在Struts2中,您可以使用以下两种方式获取HttpServletResponse对象
1)通过ServletActionContext访问HttpServletResponse
public String execute() {
HttpServletResponse response = ServletActionContext.getResponse();
return "SUCCESS";
}
2)通过实现ServletResponseAware接口访问HttpServletResponse并覆盖setServletResponse()方法。
public class LoginAction implements ServletResponseAware{
HttpServletResponse response;
//business logic
public String execute() {
Locale locale = getServletResponse().getLocale();
return "SUCCESS";
}
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
public HttpServletResponse getServletResponse() {
return this.response;
}
}
在Struts 2文档中,建议使用ServletResponseAware
答案 1 :(得分:0)
您可以在操作类中实现ServletResponseAware接口。这将使框架为您提供响应。