访问web资源
1》使用servlet API解耦的方式,获取的方法较少
1.使用ActionContext,一个一个获取,效率不高
2.实现XxxAware接口(ApplicationAware,SessionAware.....)推荐,
session对应的Map是SessionMap,强转后调用其invalidate()方法,session失效
2》使用servlet API耦合的方法,
1.使用ServletActionContext方法
2实现ServletXxxAware接口
ServletContextAware ServletRequestAware ServletResponseAware
namespace:命名空间
Action是线程安全的,因为每一次请求都创建一个实例,不是单例的
<result name="Action中方法return的地址" type=“”>type有dispatch (转发,转发到指定的页面,默认的),redirect(重定向) redirectAction(重定向到一个Action)chain(转到指定的Action)
通配符
struts 2.5以后如果要使用通配符的话必须再package中引入 strict-method-invocation="false"
值栈*
OGNL表达式
获取对象栈(ObjectStack);获取某一对象的属性值,通过<s:property value="对象值"/>,默认从栈顶开始搜索 , <s:property value="[0]对象值"/>[0]表示从索引为0的元素查找,也就是第一个,可以省略
获取Map栈;request,session,application等或者一个请求参数的值
获取map里的属性可以用EL,OGNL表达式(#session.code)用OGNL有很多好处
OGNL可以调用java类的任何静态属性和方法
首先需要在struts配置文件设置可访问设置可以访问
访问形式为
还可以调用值栈的属性和方法
将元素放到值栈的栈顶,对应的元素在栈里下移动一个位置
通用标签