Struts2中的拦截器和OGNL

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yan12422/article/details/78499837

先说下什么是拦截器吧,

比如说我们现在想访问别的页面,但是又没有登录,所以我们就不让去访问,直接跳到登录页面登录了之后再去访问这个页面



//1.获得session
Map<String, Object> session = ActionContext.getContext().getSession();
//2.获得登陆标识
Object object = session.get("user");
//3.判断登陆标识是否存在
if(object == null){
//不存在=>没登录=>重定向到登录页面
return "toLogin";
}else{
//存在=>已经登陆=>放行
return invocation.invoke();
}
 


<package name="crm" namespace="/" extends="struts-default" >
<interceptors>
<!-- 注册拦截器 -->
<interceptor name="loginInterceptor" class="action.LoginInterceptor"></interceptor>
<!-- 注册拦截器栈 -->
<interceptor-stack name="myStack">

<interceptor-ref name="loginInterceptor">

<!--不拦截那些方法-->

<param name="excludeMethods">login</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 指定包中的默认拦截器栈 -->
<default-interceptor-ref name="myStack"></default-interceptor-ref>
<!-- 定义全局结果集 -->
<global-results>
<result name="toLogin" type="redirect" >/login.jsp</result>
</global-results>
<global-exception-mappings>
<!-- 如果出现java.lang.RuntimeException异常,就将跳转到名为error的结果 -->
<exception-mapping result="error" exception="java.lang.RuntimeException"></exception-mapping>
</global-exception-mappings>


<action name="CustomerAction_*" class="action.CustomerAction" method="{1}" >
<result name="list" >/jsp/customer/list.jsp</result>
<result name="toList" type="redirectAction">
            <param name="actionName">CustomerAction_list</param>
            <param name="namespace">/</param>
        </result>
</action>
<action name="UserAction_*" class="action.UserAction" method="{1}" >
<result name="toHome" type="redirect" >/index.htm</result>
<result name="error"  >/login.jsp</result>
</action>

</package>

==========================ognl==================

<!-- 遍历标签 iterator -->
<!-- ------------------------------------- -->
<s:iterator value="#list" >
<s:property /><br>
</s:iterator>
<!-- ------------------------------------- --><hr>
<s:iterator value="#list" var="name" >
<s:property value="#name" /><br>
</s:iterator>
<!-- ------------------------------------- --><hr>
<s:iterator begin="1" end="100" step="1"  >
<s:property />|
</s:iterator>
<!-- ------------------if else elseif------------------- --><hr>


<s:if test="#list.size()==4">
list长度为4!
</s:if>
<s:elseif test="#list.size()==3">
list长度为3!
</s:elseif>
<s:else>
list不3不4!
</s:else>


<!-- ------------------property 配合ognl表达式页面取值 ------------------- --><hr>


<s:property value="#list.size()" />
<s:property value="#session.user.name" />

<!-- struts2表单标签 -->
<!-- 好处1: 内置了一套样式.  -->
<!-- 好处2: 自动回显,根据栈中的属性  -->
<!-- theme:指定表单的主题
xhtml:默认
simple:没有主题
-->
<s:form action="Demo3Action" namespace="/" theme="xhtml" >
<s:textfield name="name" label="用户名"  ></s:textfield>
<s:password name="password" label="密码" ></s:password>
<s:radio list="{'男','女'}" name="gender" label="性别" ></s:radio>
<s:radio list="#{1:'男',0:'女'}" name="gender" label="性别" ></s:radio>
<s:checkboxlist list="#{2:'抽烟',1:'喝酒',0:'烫头'}" name="habits" label="爱好" ></s:checkboxlist>
<s:select list="#{2:'大专',1:'本科',0:'硕士'}" headerKey="" headerValue="---请选择---" name="edu" label="学历" >
</s:select>
<s:file name="photo" label="近照" ></s:file>
<s:textarea name="desc" label="个人简介" ></s:textarea>
<s:submit value="提交" ></s:submit>
</s:form>

<s:actionerror/>

如果你喜欢,或者有帮助到你的地方可以关注我的微信公众号,田园折耳,

猜你喜欢

转载自blog.csdn.net/yan12422/article/details/78499837