艾伟 2013-12-03 06:04
浏览 2201

strus2继承MethodFilterInterceptor创建的拦截器不起作用

Action 代码如下:

package com.silveraegis.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;

//登录login
public String login(){
    System.out.println("testLogin");
    return "index";
}


public String TestMethod(){
    System.out.println("TestMethod");
    return "index";
}


public String TestMethod2(){
    System.out.println("TestMethod2");
    return "index";
}
public String TestMethod3(){
    System.out.println("TestMethod3");
    return "index";
}

}

拦截器代码如下:

package com.silveraegis.interceptor;

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

public class TestMethodInterceptor extends MethodFilterInterceptor{

/**
 * 
 */
private static final long serialVersionUID = 1L;

protected String doIntercept(ActionInvocation invocation) throws Exception {
    //只要是你配置的需要拦截的方法 那么他就会进入这个拦截器    而在拦截器内 处理你自己的业务逻辑

    System.out.println("此方法会被过滤:"+invocation.getProxy().getMethod());

    return invocation.invoke();
}

}

配置文件代码如下:

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





testLogin
TestMethod,TestMethod2,TestMethod3




    </interceptors>
    <!--<default-interceptor-ref name="testMethod"></default-interceptor-ref>
    --><action name="LoginAction" class="com.silveraegis.action.LoginAction" method="testLogin,TestMethod,TestMethod2,TestMethod3">
        <interceptor-ref name="testMethod">

        </interceptor-ref>

        <result name="index">/index.jsp</result>
    </action>
</package>

jsp页面如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


           <form action="test/LoginAction!login" >

                <input type="submit" value="TestLogin">

           </form>
           <form action="test/LoginAction!TestMethod" >

                <input type="submit" value="TestMethod">

           </form>
           <form action="test/LoginAction!TestMethod2" >

                <input type="submit" value="TestMethod2">

           </form>
           <form action="test/LoginAction!TestMethod3" >

                <input type="submit" value="TestMethod3">

           </form>






        </div>


  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值