struts2之访问或添加属性

在struts2的action中并没有使用到servletAPI ,所以在方法中无法得到request,session和application对象,但在开发中我们又经常需要用到这些对象,该怎么办呢?
实例1:(如仅仅只是访问或往三个范围中放入属性推荐使用下面这种方法)
Action中
	public String execute(){
		ActionContext ctx = ActionContext.getContext();
//往ServletContext里放入app
		   ctx.getApplication().put("app", "application应用范围");		   ctx.getSession().put("ses", "session范围");//往session里放入ses
		   ctx.put("req", "request范围");//往request里放入req
		return "success";
	}
Struts.xml文件
		<action name="helloword" class="cn.itcast.action.HelloWordAction" method="execute">
			<result name="success">/WEB-INF/page/message.jsp</result>
		</action>
访问路径:
http://localhost:8080/struts2/test/helloword.do
结果:
application应用范围 
session范围
request范围

如果想要得到站点目录下的某一个文件的路径就需要得到request对象【request.getRealPath(arg0);】,那么该怎么办呢?
得到request对象、session对象和application对象有两种方法:
方法一: 通过ServletActionContext.类直接获取:
实例2:Action中
	public String rsa() throws Exception{
		HttpServletRequest request = ServletActionContext.getRequest();
		ServletContext servletContext = ServletActionContext.getServletContext();
		request.setAttribute("req", "请求范围属性");
		request.getSession().setAttribute("ses", "会话范围属性") ;	
		servletContext.setAttribute("app", "application。。。。");
		//HttpServletResponse response = ServletActionContext.getResponse();
		return "success";
	}
配置文件struts.xml中
		<action name="helloword" class="cn.itcast.action.HelloWordAction" method="rsa">
			<result name="success">/WEB-INF/page/message.jsp</result>
		</action>
Jsp页面
    ${applicationScope.app} <br>
    ${sessionScope.ses}<br>
${requestScope.req}<br>
访问路径:
http://localhost:8080/struts2/test/helloword.do
结果:
application。。。。 
会话范围属性
请求范围属性
方法二:实现指定接口,由struts框架运行时注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值