共四种方式,示例在下面给出,其中第二种常用。
【注意1】:我们需要知道前两种方法得到的是Map<String,Object>,而后两种方式得到的才是真正的request等对象。而Map就是把request对象中的属性取出做成了键值对而已。
【注意2】:另外如果就是为了在action和jsp传递参数的话,只需要在action中定义成员,然后Jsp中利用struts标签<s:property value="name"/>就能够访问到数据,而这些内容都是被保存在了value stack中。关于value stack 和 stack context 会在后面得内容涉及。
?
方法一:
public class LoginAction1 extends ActionSupport {
private Map request;
private Map session;
private Map application;
public LoginAction1() {
request = (Map)ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
}
public String execute() {
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS;
}
}
方法二:
public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {
private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application;
//DI dependency injection
//IoC inverse of control
public String execute() {
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS;
}
? @Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
@Override
public void setApplication(Map<String, Object> application) {
this.application = application;
}
}
方法三:
public class LoginAction3 extends ActionSupport {
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public LoginAction3() {
request = ServletActionContext.getRequest();
session = request.getSession();
application = session.getServletContext();
}
public String execute() {
request.setAttribute("r1", "r1");
session.setAttribute("s1", "s1");
application.setAttribute("a1", "a1");
return SUCCESS;
}
}
方法四:
public class LoginAction4 extends ActionSupport implements ServletRequestAware {
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public String execute() {
request.setAttribute("r1", "r1");
session.setAttribute("s1", "s1");
application.setAttribute("a1", "a1");
return SUCCESS;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
this.session = request.getSession();
this.application = session.getServletContext();
}
}
详细解决方案
怎么在Action中获取:request,session,application
热度:89 发布时间:2013-08-13 16:43:28.0
相关解决方案
- request.setAttribute("list" "''");该怎么解决
- ssh action 调用service的时分service 为null
- Struts-config.xml配置文件《action-地图pings》元素的详解
- request.setAttribute("message" message)不能传int参数,该怎么处理
- Servlet Session 购物车,该怎么解决
- 关于<form action >的一个有关问题
- form 表单交付 <form action="<c:url value='desktop'/>"
- Servlet Session 购物车解决办法
- request.setAttribute("message" message)不能传int参数,该怎么解决
- 上面是JAVA WEB中,学生在线考试(action)的代码,有几个不明白,帮忙解释一上
- 为何jsp request.getParameter取不到值,但request.getQueryString()却有值呢
- 求老妪能解解释Response、Request
- session 覆盖的有关问题 求高手
- Could not deserialize session data解决方法
- response.write(session.getAttribute("BranchName")提示异常
- strust2 No result defined for action and result input有关问题
- JSP上if(trim(session.getAttribute("grade"))== "0") 多谢!
- struts2 action 实施大概超过一分钟后 不执行跳转了
- @Context HttpServletRequest request,@Context HttpServletResponse response,该如何解决
- struts2 下传一段时间后报错No result defined for action and result input重启后便没有有关问题了
- JSP文件开头声明了是一个上载文件(contentType="application/x-download"),是不是就不能在上面执行javascript和html了
- description The requested resource (/gongqiu/goindex.action) is not available.解决方法
- function 施行 *action
- session.invalidate()无效解决办法
- struts action 提交有关问题
- null id in com.bsw.gms.hibernate.pojo.Score entry (don't flush the Session after an exception occurs,该怎么解决
- struts2<s:if test=${pb.pageTotal>0}>出现有关问题 如果小弟我这样写是正确的<s:if test=#request.pb.pageT
- No result defined for action com.tes.web.action.FirstAction and result success,该怎么处理
- SSH框架中获取Action.action?submit=toList的类似完整路径解决思路
- <s:action>标签上传参数到action,该怎么解决