艾伟 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 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题