通过 servletactioncontext 类来访问 httpservletresponse 。
package com.h3.common.action; import javax.servlet.http.httpservletresponse; import org.apache.struts2.servletactioncontext; public class localeaction{ //business logic public string execute() { httpservletresponse response = servletactioncontext.getresponse(); return "success"; } }
package com.h3.common.action; import java.util.locale; import javax.servlet.http.httpservletresponse; import org.apache.struts2.interceptor.servletresponseaware; public class localeaction 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; } }
这两个机制都可以得到同样 httpservletresponse 对象,但 struts2 文档推荐使用 servletresponseaware,请参见下面的参考资料: