我在做spring自带的宠物店程序,想把它改成struts2的东西,我们一般写action都会继承ActionSupport这个类,我的想法是觉得每次都要在程序里取request,session太麻烦,所以我写了一个BaseAction让他继承ActionSupport,在这里声名一下request,session并赋值,之后我自己的action继承BaseAction也就等于继承了ActionSupport并且把request,session注入进来了,但是我在自己的Action里居然取不到值。
BaseAction我是这样写的:protected Map session=ActionContext.getContext().getSession();
protected HttpServletRequest request = ServletActionContext.getRequest();
但是我如果在自己的action中这样写就可以,请指教一下,是什么原因,另外有没有人有办法,不要每次都要取request,session.
BaseAction我是这样写的:protected Map session=ActionContext.getContext().getSession();
protected HttpServletRequest request = ServletActionContext.getRequest();
但是我如果在自己的action中这样写就可以,请指教一下,是什么原因,另外有没有人有办法,不要每次都要取request,session.
解决方案 »
- 64位系统JAVA new DATE获取时间和系统时间差8小时
- Spring整合hibernate出错报空指针错误求解
- Struts2中无法用$()得到属性值
- hql 关联查询语句
- JavaEE服务器端如何运行客户端代码
- 关于struts+hibernate+spring项目的团队合作的问题?
- 如何把jdom生成的domcument对象放到request.setAttribute中传递?
- 大家在开发Java WebServices & XML/Soap 项目的时候用的是什么开发工具?不防说说?
- 请问各位学J2EE用什么软件开发???
- 【现在开发J2EE的一般用什么(最常用)操作系统了!!!!】谁能告诉我!!!
- JAP原生态查询出现列名无效,很无语
- struts2+ireport,多次下载后没有响应的问题.
SessionAware { protected HttpServletRequest request; protected Map<String, Object> session; public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setSession(Map<String, Object> session) {
this.session = session;
}
}
request都取不到,再取session会空指针异常的。
/**
* 非Ioc方式创建
*/
// public HttpServletRequest getRequest(){
// return ServletActionContext.getRequest();
// }
// public HttpServletResponse getResponse(){
// return ServletActionContext.getResponse();
// }
// public HttpSession getSession(){
// return ServletActionContext.getRequest().getSession();
// }
/**
* Ioc方式创建
*/
protected HttpServletRequest request;
protected HttpServletResponse response;
protected Map session;
protected final String INDEX="index";
protected final String ERROR="error";
protected final String SUCCESS="success";
protected final String LOGIN="login";
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public void setServletResponse(HttpServletResponse response) {
this.response=response;
}
public void setSession(Map m) {
this.session=m;
}
}
这个成:
/**
* 获得请求对象HttpServletRequest
*
* @return request
*/
protected final HttpServletRequest getRequest()
{
return ServletActionContext.getRequest();
}
/**
* 获得struts2的session对象
*
* @return Map<String, Object>
*/
protected final Map<String, Object> getSession()
{
return getActionContext().getSession();
}
* 获得上下文对象ActionContext
*
* @return actionContext
*/
protected final ActionContext getActionContext()
{
return (actionContext == null) ? actionContext = ActionContext.getContext() : actionContext;
}