算个小名 2015-11-16 01:56 采纳率: 33.3%
浏览 1850

关于struct拦截未登录用户的问题

 <?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>
    <!-- 这是一个重要的地方,很多人在使用<s:include>子页面后,发现子页面乱码,怎么改都不行,原因就在次,struts2的默认编码为UTF-8,乱码的同志请看看你的jsp页面上的编码是不是和这个不一致呢。只要把这里和jsp编码改一致就行了 -->
    <constant name="struts.i18n.encoding" value="UTF-8" />
    <!-- 告诉struts2,我要用spring装配工厂,其实默认就是这个了-_-!!! -->
    <constant name="struts.objectFactory" value="spring" />
    <!-- struts2的扩展名,比如struts1的时候,用的.do,struts2默认为.action,可以改成其它的,比如.dxd -->
    <constant name="struts.action.extension" value="action" />
    <!-- 资源文件 -->
    <constant name="struts.custom.i18n.resources" value="messageResource">
    </constant>
    <package name="default" namespace="/" extends="json-default">
        <!-- 未登录用户拦截 -->

        <interceptors>
            <interceptor name="loginInteceptor" class="com.xlb.interceptor.LoginInterceptor" />
            <interceptor-stack name="loginStack">
                <interceptor-ref name="loginInteceptor">
                    <param name="excludeMethods">goLogin,loginuser</param>
                </interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>


        <action name="loginuser" class="UserAction" method="login">
            <result type="json"></result>
        </action>
        <action name="getAllStudentAction" class="StudentAction"
            method="getAllStudent">
            <result type="json">
            </result>
            <interceptor-ref name="loginInteceptor"></interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>
        <action name="getAllKaikeAction" class="KaikeAction" method="getAllKaike">
            <result type="json">
            </result>

            <interceptor-ref name="loginInteceptor"></interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>

    </package>
    <package name="index" namespace="/" extends="struts-default">

        <interceptors>
            <interceptor name="loginInteceptor" class="com.xlb.interceptor.LoginInterceptor" />
            <interceptor-stack name="loginStack">
                <interceptor-ref name="loginInteceptor">
                    <param name="excludeMethods">loginuser</param>
                </interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <global-results>
            <result name="goLogin">login.jsp</result>
        </global-results>

        <action name="Student" class="StudentAction" method="showindex">
            <result>index.jsp</result>
            <interceptor-ref name="loginInteceptor"></interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>

    </package>
</struts>
 package com.xlb.interceptor;  
import com.opensymphony.xwork2.ActionContext;  
import com.opensymphony.xwork2.ActionInvocation;  
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;  
public class LoginInterceptor extends MethodFilterInterceptor{  
    @Override  
    protected String doIntercept(ActionInvocation invoker) throws Exception {  
        // TODO Auto-generated method stub  

        Object loginUserName = ActionContext.getContext().getSession().get("id");  
        if(null == loginUserName){  
           return "goLogin.action";  // 这里返回用户登录页面视图  
        }  
        return invoker.invoke();  
    }  

}  

最后结果为 Could not find action or result
No result defined for action com.xlb.action.KaikeAction and result goLogin.action

拦截数据 不拦截页面不跳转

  • 写回答

3条回答 默认 最新

  • 我说假如 2015-11-17 11:54
    关注

    ......

    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现