day3:
ognl使用#的两种方式: 获取域对象的值(request),<s:iterator>标签中获取list集合数据
ognl使用%的方式:在struts2的表单标签中要使用%标识,不然不能识别, <s:textfile type=‘text‘ value=‘%{#request.username}‘/>
el为什么能获取值栈的数据: el本身就是用来获取域对象数据的,能获取值栈数据是因为底层增强域对象( request)中的getAttribute()---- 效率低一般不用
向值栈存放数据的三种方式:1.set() 2.push() 3.定义变量,变量get(),赋值---常用
向值栈存放对象,存放List集合
获取值栈对象值,获取字符串, 获取List集合的三种方式:1.list[0].username 2.<s:iterator>..
3.<s:iterator value="list" var="user"> --- 常用
<s:property value="#user.username"/>
获取set,push(用到top数组)方法设置的值
day4:
什么是拦截器:struts2里面封装的功能都是在拦截器里 struts2封装了很多功能,有多个拦截器,每次 只执行默认的拦截器。
什么时候执行过滤器: 在action对象创建后,action方法执行前
拦截器底层实现的两个原理:
1.aop思想
面向切面编程,不通过修改源代码方式扩展功能
2.责任链模式(类似于过滤链模式)--- 类似于放行--- .invoke();
java中的一种设计模式
过滤器与拦截器的区别:
过滤器:理论上可以过滤任意内容,如html,jsp,servlet,图片路径
拦截器:只可以拦截action
servlet与action的区别
自定义拦截器: 1.实现接口Interceptor 2.继承AbstractInterceptor 3. 继承MethodFilterInterceptor(常用,因为可以设置不拦截的方法)
步骤: 1.继承MethodFilterInterceptor,实现方法 2.在struts.xml的package内配置拦截器 3.action标签内使用自定义的拦截器 4.手动启动默认拦截器(defaultStack)
配置不拦截方法: action标签内使用自定义的拦截器时,<param name="excludeMethods">login</param>
Struts常用标签:<s:iterator> <s:debug> <s:property>
Struts表单标签:html有的大多数都一样!
案列操作,等学习了Hibernate之后看看
原文:http://www.cnblogs.com/tiffany-xin/p/6493031.html