struts2中访问和添加Application、session以及request属性
一、访问或添加Application、session、request属性
《一》方式一
HelloWorldAction类中添加如下代码
//此方法适用于仅对Application、session、request对象添加属性值
public String execute(){
//访问或添加Application、session、request属性
ActionContext act=ActionContext.getContext();
act.getApplication().put("app", "application范围(应用范围)");
act.getSession().put("ses", "session范围");
act.put("req", "request范围");
return "success";
}
Struts.xml文件内容:(使用了通配符的方式)
<action name="helloworld_*" class="test.struts2.HelloWorldAction" method="{1}" >
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
Hello.jsp页面内容:
${applicationScope.app}</br>
${sessionScope.ses}</br>
${requestScope.req}</br>
访问连接可以为:
http://localhost:8080/struts2/test/helloworld_execute.do(注意:do,xxx为自定义后缀,这样访问时必须加上)
http://localhost:8080/struts2/test/helloworld_execute.xxx
http://localhost:8080/struts2/test/helloworld_execute.action
http://localhost:8080/struts2/test/helloworld_execute为无效链接
http://localhost:8080/struts2/test/helloworld为无效链接
http://localhost:8080/struts2/test/helloworld.action也可以访问
http://localhost:8080/struts2/test/helloworld.do也可以访问
结论:
在使用通配符的方式下(name="helloworld_*",method="{1}")如果地址栏中地址helloworld后没有直接跟方法名execute或addUI等,那么默认执行execute方法,因为在配置文件中 <constant name="struts.action.extension" value="do,action,xxx,aiai"/>定义了几个后缀,所以访问连接必须添加其中之一方有效。以上五个有效连接访问结果一样。
结果为:
application范围(应用范围)
session范围
request范围
《二》方式二
此方式适用于需要获取绝对路径等重要信息时使用
此时在Action类HelloWorldAction类中添加如下代码,其他地方不改动
public String rsa()
{
HttpServletRequest request=ServletActionContext.getRequest();
ServletContext servletContext=ServletActionContext.getServletContext();
request.setAttribute("req", "请求方位属性");
request.getSession().setAttribute("ses", "会话范围属性");
servletContext.setAttribute("app", "应用范围属性");
return "success";
}
访问地址:
http://localhost:8080/struts2/test/helloworld_execute!rsa.do
http://localhost:8080/struts2/test/helloworld!rsa.do
http://localhost:8080/struts2/test/helloworld_rsa.do
http://localhost:8080/struts2/test/helloworld_addUI!rsa.do
http://localhost:8080/struts2/test/helloworld_addUI!Rsa无效
http://localhost:8080/struts2/test/helloworld_rsa无效
结果为:
应用范围属性
会话范围属性
请求方位属性
补充:
public String execute(){
//访问或添加Application、session、request属性
ActionContext act=ActionContext.getContext();
act.getApplication().put("app", "application范围(应用范围)");
act.getSession().put("ses", "session范围");
act.put("req", "request范围");
act.put("names",Arrays.asList("幽林孤狼","心晴","幽林孤狼B组"));//新
return "success";
}
再\WebRoot\WEB-INF\lib目录下引入如下两个jar文件

在hello.jsp文件中添加:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
以及:
<c:forEach items="${names}" var="name">
${name}</BR>
</c:forEach>
访问结果为:
幽林孤狼
心晴
幽林孤狼B组
struts2中访问和添加Application、session以及request属性的更多相关文章
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- struts2中访问servlet API
Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等.Struts ...
- Struts2中 ValueStack、ActionContext、ServletContext、request、session等 表格解析
变量 从ActionContext中获得 生命周期 用Ongl来读取值 使用ServletConfigInterceptor来注入 ActionContext类 静态方法ActionContext. ...
- struts2中的使用BaseAction获取Session
package com.owen.ma; import java.util.Map; import org.apache.struts2.interceptor.RequestAware; impor ...
- Struts2中的ModelDriven机制及其运用、refreshModelBeforeResult属性解决的问题
1.为什么需要ModelDriven? 所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2 ...
- Struts2(八)访问Servlet API
一.Struts2中的Servlet API 1.1.struts2的Action实现了MVC中C层的作用 针对请求用户显示不同的信息 登录后段保存用户信息 ----session 保存当前在线人数等 ...
- 关于struts2中的相对路径与绝对路径
从昨天开始复习了struts2的课程,之所以重新走上java的道路,是觉得写了一年的go程序,并没有感觉到学习了什么,反而把java给忘得干干净净的.想想我的计划,年后就要换工作了,至于要换到什么方向 ...
- struts2访问或添加几个属性(request/session/application属性)
https://blog.csdn.net/hebiao100/article/details/7385055 struts2添加request.session.application属性 第一种方法 ...
- struct2访问或添加request/session/application
访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute() { ActionConte ...
随机推荐
- 253. Meeting Rooms II
题目: Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] ...
- 248. Strobogrammatic Number III
题目: A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at ups ...
- 神经网络指南Hacker's guide to Neural Networks
Hi there, I'm a CS PhD student at Stanford. I've worked on Deep Learning for a few years as part of ...
- (2)WinForm中改变Tab选项卡的顺序
Tab选项卡选中,在其属性中找到TabPages这个属性.点进去,可以通过上下移动标签卡改变标签卡的顺序.
- Java根据html模板创建 html文件
1.创建html的java代码 package com.tydic.eshop.util; import java.io.FileInputStream; import java.io.FileOut ...
- mac更新node
今天在用 yeoman 的时候,提示对 npm 和 node 的版本有要求,为了决绝以后遇到的一些类似的问题,我决定定期对 node 和 npm 进行更新. npm的更新: $ sudo npm in ...
- Html5大文件断点续传
大文件分块 一般常用的web服务器都有对向服务器端提交数据有大小限制.超过一定大小文件服务器端将返回拒绝信息.当然,web服务器都提供了配置文件可能修改限制的大小.针对iis实现大文件的上传网上也 ...
- Android之 环境搭建
一. 使用ADT Bundle多合一下载包 下载地址:链接:http://pan.baidu.com/s/1gepNRjX 密码: ozdi 说 明:多合一下载包,里面包含了:sdk + ...
- js学习总结
转自 http://blog.sina.com.cn/s/blog_75cf5f3201011csu.html 一: 关于基本数据类型在栈内存和堆内存中的关系 基本数据对于栈内存和堆内存是可以复制的, ...
- LeetCode: JumpGame 1 and 2
Title : Given an array of non-negative integers, you are initially positioned at the first index of ...