访问struts2的action页面出现白板问题

故需要设置拦截此action的拦截栈,

<bean id="authenticationInterceptor" class="com.cosl.util.interceptor.AuthenticationInterceptor"></bean><!--权限拦截器 -->
<?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">

<struts>
<package name="struts-my" extends="json-default">

<interceptors>
<!-- 判断是否登录 和 是否有访问权限 -->
<interceptor name="auth" class="authenticationInterceptor"/><!-- 这是com.cosl.util.interceptor.AuthenticationInterceptor的拦截器,在applicationContext.xml文件里实例化了 -->
<interceptor-stack name="myStack">
<interceptor-ref name="auth"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"></default-interceptor-ref>
<default-action-ref name="notFound"/>
<global-results>
<result name="noLogin" type="redirect">/pages/Developer/loginJsp</result>
<result name="noPower" type="redirect">/no_power.jsp</result>
</global-results>
<action name="notFound" class="com.cosl.util.CommonAction" method="notFound">
            <result name="success">/not_found.jsp</result>
        </action>
</package>
</struts>
<package name="Diaocha" extends="struts-my" namespace="/pages/Diaocha">

                <action name="diaochaJsp" class="com.cosl.action.DiaochaAction" method="diaochaJsp">
                <interceptor-ref name="defaultStack"/><!-- 这儿让我调试了4个小时,直接访问action没出任何结果,因为被interceptor拦截了 -->
            <result name="diaochaJsp">/admin/editPasswordJsp.jsp</result>
        </action>

        </package>

那是因为我访问的action被如下代码拦截了,而我所访问的action是还没登陆时就访问的,也就是所非登录状态访问的action,被下面的拦截器所拦截,

public class AuthenticationInterceptor extends AbstractInterceptor {

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        // TODO Auto-generated method stub
        Map map=invocation.getInvocationContext().getSession();
        if(map.get("user")!=null)
        {
            //return "noLogin";
             return invocation.invoke();
        }else{
            //获得登录用户的权限
        }
        return null;
    }

}
时间: 2024-08-10 19:17:49

访问struts2的action页面出现白板问题的相关文章

Struts2 In Action笔记_页面到动作的数据流入和流出

因为回答百度知道的一个问题,仔细查看了<Struts2 In Action>,深入细致的看了 “数据转移OGNL 和 构建视图-标签”,很多东西才恍然大悟. 一直觉得国外写的书很浮,不具有操作性,但其实,Coding多了,才发现国外的书写的深刻.清晰.能传道解惑. 一.主要收获 1. Struts2 框架的数据流入和流出 使用 Struts2 标签时,所有非字符串属性都被当作 OGNL表达式进行解析. 使用  %{expression} 语法可以强制将字符串属性当作 OGNL表达式解析. 2.

struts2的action访问servlet API的三种方法

学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object get(Object key);可以获取request属性 Map getSession():可以得到session属性 Map getAppliction():可以得到ServletContext实例 2.action类实现 ServletContextAware,ServletRequestAwa

struts2 action 页面跳转

struts2 action 页面跳转 标签: actionstruts2redirect 2013-11-06 16:22 20148人阅读 评论(0) 收藏 举报 (1)type="dispatcher" 为默认,用于jsp页面跳转<result name="success">/index.jsp</result> 完整的写法为: <result name="success" type="dispatc

struts2与spring整合问题,访问struts2链接时,spring会负责创建Action

每次访问一次链接,spring会创建一个对象,并将链接所带的参数注入到Action的变量中(如何做到的呐) 因为: struts2的action每次访问都重新创建一个对象,那spring的ioc是怎么实现注入的呢 ? 靠的是spring给创建的对象. 不知道你的action是在spring容器里还是自己创建的!要是在spring容器中那直接ref就好了. http://zhidao.baidu.com/link?url=tLlBYhZ9WIZLKo_0CzT1m3EIaXqIdAntESNjx3

Struts2之Action详解

在MVC中,要有一个控制器来负责浏览器与服务器的通信,实现服务器与用户的交互.Struts2控制器最重要的组成部分是Action. Action接收来自视图层的请求,并接收请求参数,同时负责调用模型Model层方法来完成业务逻辑的处理,最后控制程序的流程,选择一个合适的视图,将结果显示给用户. Struts2会为每一个Action创建一个线程,因此是线程安全的. 尽量不要将商业逻辑代码放到Action中,而是放到JavaBean或者 EJB中. 一.Action的实现  有三种方法,最常用的是P

struts2的action是多例,servlet是单例

struts2中action是多例的,即一个session产生一个action如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为用户修改时间不同,两个用户访问得到的 属性不一样,操作得出的结果不一样.举个例子:有一块布长度300cm,能做一件上衣(用掉100cm)和一件裤子(用掉200cm);甲和乙同时访问得到的 长度都是300cm,甲想做上衣和裤子,他先截取100cm去做上衣,等上衣做完再去做裤子,而乙这时正好也拿100cm去做上衣,那 好,等甲做完上衣再做裤子的时候发现剩下的布(

Struts2之Action的实现

对于Struts2框架来说,最重要的莫过于Action类的编写,类比于Servlet,Action类也是通过类的实例对象调用方法来处理请求的,Action类的实例对象是由Struts2的核心Filter,根据请求的Action,来决定生成哪个Action类的实例对象. 不同与servlet,一个类要成为Action类并不需要继承任何Struts2的基类,或者实现任何接口. public class  LoginAction { private   String  name; private  

Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中

struts2的关于method="{1}"意思详解 <action   name= "Login_* "   method= "{1} "   class= "mailreader2.Login ">中Login_*带*是什么意思?method= "{1} "带{}这个是什么意思?====================================================name=

Struts2 配置Action详解

Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法. 该方法如下: public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的