2 linmeimeimei linmeimeimei 于 2016.09.08 11:38 提问

菜鸟自学Struts2 拦截器不起作用,求大神帮忙带飞

进入jsp页面后访问没有进过拦截器拦截 直接进去action的处理类 配置看了好久 找不出来哪里错了 求各位大神指点迷津。。。。

自定义拦截器: 登录即可查询 没登录查询不了 登录后不是admin 无法进行商品操作
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {

    // 得到被拦截的actionContext所有对象
    ActionContext actionContext = actionInvocation.getInvocationContext();

    // 从session中获得role角色对象
    String role = (String) actionContext.getSession().get("role");

    System.out.println(role);

    // 得到request对象
    Map request = (Map) actionContext.get("request");

    if (role == null) {

        request.put("msg", "没有登录,请<a href = 'index.jsp'>重新登录</a>");
        return "error";

    } else {

        String method = actionInvocation.getProxy().getMethod()
                .toLowerCase();
        if (!role.equals("admin")
                && (method.contains("add") || method.contains("del") || method
                        .contains("update"))) {

            request.put("msg", "不是管理员,没有权限进行这项操作   <a href = 'javascript:history.go(-1)'>返回</a>");

            return "error";

        }

    }
    return actionInvocation.invoke();

}



jsp页面 没有进过拦截 直接调用了action处理类的对应方法  

 <body>

<h2>订单管理系统操作功能列表

    <hr/>
    <ul><a href= "cust!queryCust.action">查询客户</a></ul>
    <ul><a href= "cust!addCust.action">添加客户</a></ul>
    <ul><a href= "shop!addShop.action">添加商品</a></ul>
    <ul><a href= "shop!updateShop.action">修改商品</a></ul>


</h2>   

Struts.xml




<package name="intercepter" extends="struts-default">
    <interceptors>
        <interceptor name="auth" class="com.intercepter.MyIntercepter"></interceptor>
    </interceptors>

    <default-interceptor-ref name="auth"/>

    <global-results><result name = "error">/error.jsp</result></global-results>

    <action name = "cust" class = "com.action.CustAction">
    </action>
    <action name = "shop" class = "com.action.ShopAction">
    </action>
</package>

1个回答

dullchap
dullchap   2016.09.08 17:36

拦截器只声明还不行,哪些action需要用它拦截,还是需要引用一下,例如下面这样:

 <action name="cust" class="com.action.CustAction">          
           <!-- 拦截器配置 -->
           <interceptor-refname="auth"></interceptor-ref>
                    <interceptor-refname="defaultStack"></interceptor-ref>
  </action>
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
菜鸟到大神的上位历程,即学即用走向人生巅峰(大神学习经验)
结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考,面向初学者,让初学者少走弯路。     互联网的快速发展和激烈竞争,用户体验成为一个重要的关注点,导致专业前端工程师成为热门职业,各大公司对前端工程师的需求量都很大,要求也越来越高,优秀的前端工程师更是稀缺。个人感觉前端入门相对容易,但是也需要系统地认
菜鸟到大神的上位历程,即学即用走向人生巅峰
结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考,面向初学者,让初学者少走弯路。     互联网的快速发展和激烈竞争,用户体验成为一个重要的关注点,导致专业前端工程师成为热门职业,各大公司对前端工程师的需求量都很大,要求也越来越高,优秀的前端工程师更是稀缺。个人感觉前端入门相对容易,但是也需要系统地认
fifo to uart
VHDL 带fifo的uart 源代码,求大神帮忙修改。
Struts2文件上传在配置fileUpload拦截器中设置文件大小无效的问题
action的配置如下:action name="uploadSong" class="uploadSongAction">      interceptor-ref name="fileUpload">                 param name="maximumSize">209715200param>        interceptor-ref>       interc
.Java程序员从笨鸟到菜鸟之(四十七)细谈struts2(九)内置拦截器和自定义拦截器详解(附源码)
本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188        在上一篇博客中,我们一起看了拦截器的具体实现原理,并且看了一下源码(细谈struts2(八)拦截器的实现原理及源码剖析),这一篇博客,我即将带领大家一起来看一下Struts2内置实现的拦截器和如何自定义我们自己的拦截器来达到我们想要实现的功能 四.Struts2内置拦截器
struts拦截器includeMethods或excludeMethods没起作用
自定义拦截器public class EstimateInterceptor extends AbstractInterceptor 如果继承的sh
从前端菜鸟到大神,一篇总结得很好的文章
从前端菜鸟到大神                                                                                                                                                         转载自:https://github.com/qiu-deqing/FE
Struts2拦截器属性excludeMethods、includeMethods配置无效之解决方法
参考:http://blog.csdn.net/coolcoffee168/article/details/7963251
【mysql 修炼之路】如何从菜鸟成为mysql 大神?
首先MySQL大多是跑在Linux环境上的,所以我们需要学习一下Linux的知识,最基础的需要了解: ■ Linux的安装及目录结构意义 ■ 常用的Linux命令,大概20多个 ■ 网络基本知识,进一步了解网关及路由相关概念,dhcp ■ 撑握一定的Linux网络服务,如果LAMP结构,dns, ftp 等其
水仙花数语言
水仙花数c语言,也就是阿姆斯特朗数的算法程序,希望大神们多多指教,求带飞我这只csdn小菜鸟