JAVAEE框架学习——Struts2——拦截器、标签
2018-06-04 本文已影响2人
So_ProbuING
Struts2拦截器架构
拦截器架构拦截器的生命周期
通过看拦截器的源码我们看到:拦截器的生命周期是随项目的启动而创建,随项目的关闭而销毁
自定义拦截器
创建方式
创建方式1
图片.png创建方式2
图片.png创建方式3
图片.png拦截器API
放行
图片.png前后处理
图片.png不放行 直接跳转到一个结果界面
图片.png不执行后续的拦截器以及Action,直接交给Result处理结果,进行页面跳转
拦截器配置
注册拦截器
<!--注册拦截器-->
<interceptors>
<interceptor name="myInter3" class="cn.probuing.struts2lesson.interceptorself.MyInterceptor3"/>
注册拦截器栈
<!--注册拦截器栈-->
<interceptor-stack name="mystack">
引入自己的拦截器和默认拦截器
<!--引入自己的拦截器-->
<interceptor-ref name="myInter3"/>
<!--引入默认的拦截器栈-->
<interceptor-ref name="defaultStack"/>
指定默认拦截器栈
<!--指定默认拦截器栈 指定包中默认的拦截器栈-->
<default-interceptor-ref name="mystack"/>
单独为action指定拦截器
<action name="Interceptor" class="cn.probuing.struts2lesson.interceptorself.Interceptor1Demo">
<!--为action单独指定走哪个拦截器栈-->
<!--<interceptor-ref name="mystack"/>-->
<result name="success" type="dispatcher">/index.jsp</result>
</action>
定制拦截方法
<interceptor-ref name="myInter3">
<!--指定哪些方法拦截哪些方法不拦截-->
<param name="excludeMethods">add,delete</param>
<!--指定哪些方法拦截 exclude include 只能有一个-->
<!--<param name="includeMethods">update,find</param>-->
</interceptor-ref>
Struts2标签
历史
标签来源标签结构
图片.png控制标签
遍历标签
<%--遍历标签--%>
<%--遍历方式1--%>
<s:iterator value="#list">
<%--取栈顶的元素--%>
<s:property/><br>
</s:iterator>
<%--遍历方式2--%>
<s:iterator value="#list" var="name">
<s:property value="#name"/>
<br>
</s:iterator>
<%--计数--%>
<s:iterator begin="1" end="100" step="1">
<s:property/>
</s:iterator>
判断标签
<!-- 判断标签 -->
<s:if test="#list.size()==4">
<br>
list的长度为4
</s:if>
<s:elseif test="#list.size()==4">
<br>
list的长度为3
</s:elseif>
<s:else>
list 不3不4
</s:else>