BaseAction
2015-09-11 10:24
351 查看
一个项目中可能会有很多action都需要用到session,如果每个action都来实现 org.apache.struts2.interceptor.SessionAware这个接口,可能会显得比较麻烦,所以建议作一个抽象的 BaseAction类来实现org.apache.struts2.interceptor.SessionAware接口,以后所有的action只要继承这个BaseAction就可以了。
BaseAction一般用于统一的过程包装,例如异常处理,记录登录用户操作日志实现的模式一般使用模板方法。action类基础,继承自ActionSupport,用户实现自己的action的时候继承,提供
Map<String, Object> session, 提供 HttpServletResponse response, 提供 HttpServletRequest request等
。
/**
* 响应文本信息,utf-8编码
* @param json 文本信息,多为JSON
*/
public void responseText(String json){
response.setContentType("text/html;charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
out.print(json);
out.flush();
}
public void responseXml(String json){
response.setContentType("text/plain;charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
out.print(json);
out.flush();
}
public void setSession(Map<String, Object> arg0) {
this.session = arg0;
}
涉及到session要谨慎,一旦session过期将会产生很多无法预料的问题。baseAction只适合解决一些横切方面的问题
BaseAction一般用于统一的过程包装,例如异常处理,记录登录用户操作日志实现的模式一般使用模板方法。action类基础,继承自ActionSupport,用户实现自己的action的时候继承,提供
Map<String, Object> session, 提供 HttpServletResponse response, 提供 HttpServletRequest request等
。
/**
* 响应文本信息,utf-8编码
* @param json 文本信息,多为JSON
*/
public void responseText(String json){
response.setContentType("text/html;charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
out.print(json);
out.flush();
}
public void responseXml(String json){
response.setContentType("text/plain;charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
out.print(json);
out.flush();
}
public void setSession(Map<String, Object> arg0) {
this.session = arg0;
}
涉及到session要谨慎,一旦session过期将会产生很多无法预料的问题。baseAction只适合解决一些横切方面的问题
相关文章推荐
- zf-关于公司框架的时间字段的格式转换问题。。
- python 遇到 syntaxerror: non-ascii character有关问题
- VC运行库 (/MT /MD 等)
- 在Windows Server 2008中实现流量的监控和限制
- Nginx限制带宽配置示例
- 30多年程序员生涯经验总结
- C中结构体的存储分配
- jQuery 实现checkBox全选效果
- iOS小技巧:用runtime 解决UIButton 重复点击问题
- 自己动手打造基于 WKWebView 的混合开发框架(一)WKWebView 上手
- 谈谈游戏中的帮派设计
- javascript类型转换(2)
- PullDownListView高仿微信下拉眼睛出现动画
- [Phonegap+Sencha Touch] 移动开发61 使用 URL Schemes实现一个App启动另一个App的功能
- Linux下memcached安装和启动方法
- TortoiseGit访问Gitosis搭建的版本库
- 14个专门面向女性开发人员的编程社区
- 程序员什么时候该考虑辞职
- FLEX布局的一些问题和解决方法
- IDF -PMC与Intel联手演示池化NVMe解决方案