首页 > 其他分享 >struts2中MethodFilterInterceptor类的用法

struts2中MethodFilterInterceptor类的用法

时间:2023-03-05 10:00:34浏览次数:47  
标签:MethodFilterInterceptor 拦截器 FunctionInterceptor struts add 用法 struts2 jsp result


这个拦截器用于拦截部分函数。

拦截器类

package com.test.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

public class FunctionInterceptor extends MethodFilterInterceptor{

@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
System.out.println("FunctionInterceptor拦截器之前。。。。。。。。。。。");
String result=invocation.invoke();
System.out.println("FunctionInterceptor。。。。。。。。。。拦截器之后。");
return result;
}

}


struts.xml配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />

<package name="default" namespace="" extends="struts-default">
<!-- 这里是拦截器的配置 -->
<interceptors>
<interceptor name="test" class="com.test.interceptor.TestInterceptor"></interceptor>
<!-- 用于仅拦截某些方法 -->
<interceptor name="function" class="com.test.interceptor.FunctionInterceptor">
<param name="includeMethods">add</param>
</interceptor>
<interceptor-stack name="myStack">
<interceptor-ref name="test"/>
<interceptor-ref name="function"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>

<!-- 正确和错误的分别跳转,input是在验证失败后会跳转的页面 -->
<action name="data" class="com.test.action.ValideAction">
<interceptor-ref name="myStack"></interceptor-ref> <!-- 使用拦截器的动作 -->
<result name="success">/result.jsp</result>
<result name="input">/login.jsp</result>
</action>

<action name="FunctionInterceptor" class="com.test.action.ValideAction" method="add">
<interceptor-ref name="myStack"></interceptor-ref> <!-- 使用拦截器的动作 -->
<result name="success">/result.jsp</result>
<result name="input">/login.jsp</result>
</action>
<action name="dele" class="com.test.action.ValideAction" method="dele">
<interceptor-ref name="myStack"></interceptor-ref> <!-- 使用拦截器的动作 -->
<result name="success">/result.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>


主要是这样一段代码:

<interceptor name="function" class="com.test.interceptor.FunctionInterceptor">
                <param name="includeMethods">add</param>
            </interceptor> 

说明拦截的方法只有add,不拦截其他方法。

标签:MethodFilterInterceptor,拦截器,FunctionInterceptor,struts,add,用法,struts2,jsp,result
From: https://blog.51cto.com/u_15990596/6101125

相关文章

  • caffeine 高效缓存用法小记
    caffeine高效缓存用法小记。1.pom<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><vers......
  • SQL语法:join的用法总结
    一、LEFTJOIN(左连接)作用:左连接,表table_a左连接表table_b,表示以表table_a为主,关联上表table_b的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交......
  • nn.init.xavier_uniform_()用法详解
    基本思想是通过网络层时,输入和输出的方差相同,包括前向传播和后向传播。为啥需要进行xavier初始化:sigmoid激活函数:参考博客:https://blog.csdn.net/dss_dssssd/article......
  • mysql中union的用法[转载]
     https://blog.csdn.net/qq_45148387/article/details/116357408?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-11......
  • NLP-transformer-分词库用法
    NLP-transformer-分词库用法 参考文档: https://blog.csdn.net/orangerfun/article/details/1240894671pipinstalltransformer2下载专有的vocab.txt词典这个......
  • Java8中Stream详细用法大全
    Java8中Stream详细用法大全一、概述Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操......
  • thinkphp5.0 分页用法
    $num=input('get.page')?input('get.page'):1;//接收参数//数据的总数量$count=Db::name('user')->where(['uid'=>$this->uid])->where('types','in',[2,3])->cou......
  • Freemarker的三目用法
    在Freemarker中不支持三目表达式(bool?true:false),但是有替代其功能的freemarker表达式。可以使用?string和?then进行类三目的操作。bool?string('yes',no)bool?th......
  • python numpy中的cumsum的用法
    1、函数作用该函数定义在multiarray.py中有定义defcumsum(self,axis=None,dtype=None,out=None):#realsignatureunknown;restoredfrom__doc__"""......
  • EBS Form Builder:app_field.clear_dependent_fields和APP_FIELD.set_dependent_field
    用途:可以调用APP_FIELD.clear_dependent_fields和APP_FIELD.set_dependent_field来将两个(或多个)Item建立关联,当一个为空时,另一个不可录入,反正,可录入,且父ItemField变化......