首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于struts2拦截器的一有关问题!有代码

2011-12-15 
关于struts2拦截器的一问题!有代码.struts.xml中拦截器配置include filestruts-default.xml/constan

关于struts2拦截器的一问题!有代码.
struts.xml中拦截器配置
<include file="struts-default.xml"/>
<constant name="struts.devMode" value="true" />
  <package name="struts2" extends="struts-default" namespace="/caifu">
  <interceptors>
  <interceptor name="auth" class="com.lil.test_ch10_03.interceptor.AuthenticationInterceptor" />
   
  <interceptor-stack name="securityStack">
  <interceptor-ref name="defaultStack" />
  <interceptor-ref name="auth" />
  </interceptor-stack>
  </interceptors>
   
  <global-results>
  <result name="login">/caifu/login.jsp</result>
  </global-results>
  <action name="resource">
  <result>/caifu/resource.jsp</result>  
  <interceptor-ref name="securityStack" />
  </action>
  <!-- 后台登录 -->
  <action name="loginAction" class="loginAction">
  <result name="success" type="redirect-action">userManageAction!list.action</result>
  <result name="input">/caifu/login.jsp</result>
  <result name="inter">/caifu/quanxian.jsp</result> //其它用户跳转到这个页面 </action>
  <!-- 系统用户显示 -->
  <action name="userManageAction" class="userManageAction">
  <result name="list">/caifu/index.jsp</result>
  <result name="view">/caifu/systemadminlist.jsp</result>
  <result name="getbyid">/caifu/adminedit.jsp</result>
  <result name="updatelist" type="redirect-action">/userManageAction!list.action</result>
  <result name="dellist" type="redirect-action">/userManageAction!list.action</result>
  <result name="save" type="redirect-action">/userManageAction!list.action</result>
  <result name="inter">/caifu/quanxian.jsp</result> 
   
  </action>


Action部分代码
public String execute() throws Exception {

List adminList = loginservice.list(loginvo);

if ("yuhuan".equals(loginvo.getName())
&& "goview".equals(loginvo.getPsw())) {
ActionContext.getContext().getSession()
.put("userManage", loginvo.getName());
ActionContext.getContext().getSession().put("psw", loginvo.getPsw());
System.out.println("-------------");
return "success";
} else {
return "inter";

}
登录后jsp页:


<ul>
 <li>
<a href="<s:url action="userManageAction!list.action" />">系统用户</a></li>
 <p>
 <li>
 <a href="<s:url action="clientInfo!clientList.action" />">客户</a>
 </li><p>
 <li>

quanxian.jsp页面
 <s:label>无权限访问! <input type="text" name="works" value="1"/> </s:label>
 

[解决办法]
你的LoginAction 没有把定义的interceptor引入


[解决办法]

Java code
<action name="resource">            <result>/caifu/resource.jsp </result>                       <interceptor-ref name="securityStack" />//这儿你加了        </action> <action name="loginAction" class="loginAction">   <interceptor-ref name="securityStack" />//这儿你没加  <result name="success" type="redirect-action">userManageAction!list.action </result>  <result name="input">/caifu/login.jsp </result>  <result name="inter">/caifu/quanxian.jsp </result> //其它用户跳转到这个页面  </action>  <!-- 系统用户显示 -->  <action name="userManageAction" class="userManageAction">  <result name="list">/caifu/index.jsp </result>  <result name="view">/caifu/systemadminlist.jsp </result>  <result name="getbyid">/caifu/adminedit.jsp </result>  <result name="updatelist" type="redirect-action">/userManageAction!list.action </result>  <result name="dellist" type="redirect-action">/userManageAction!list.action </result>  <result name="save" type="redirect-action">/userManageAction!list.action </result>  <result name="inter">/caifu/quanxian.jsp </result>  </action>
[解决办法]
不好意思,我现在上不了QQ,不过给你个中文的webweork文档吧,你看看,你自己可以调试调试,首先取看看它拦截的顺序,你的“auth”在拦截器里面的位置也要考虑一下,一般是没问题的,它请求过来,你在action里面如果<interceptor-ref name="securityStack" >,它肯定会走你这里面的拦截器都过一遍的。
http://wiki.javascud.org/display/ww2cndoc/Interceptors

[解决办法]
除非在执行你的之前有别的拦截先跳转了
[解决办法]
拦截器是引用了才有效
没有引用是没有效的
还有就是如果你的拦截器对系统用户处于放行状态也是失效的

热点排行