1
回答
SSH零配置下Struts2拦截器配置问题
开发十年,就只剩下这套Java开发体系了   

    准备采用Struts2做日志管理,我的系统框架是S2SH,且用convention实现的零配置。

    自定义拦截器后,不知道如何配置对应的action(不能每个action都配置,那样麻烦),然后用通配符尝试了下,不能调用到拦截器。

     如下是sturts.xml中的配置:

<?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>
 <!-- 基于convention插件的struts2零配置 -->
    <bean type="org.apache.struts2.convention.ActionNameBuilder" name="defualt" class="org.apache.struts2.convention.DefaultActionNameBuilder"/>
    <constant name="struts.convention.actionNameBuilder" value="defualt"/>

    <constant name="struts.objectFactory" value="spring" />
    
<constant name="struts.convention.action.mapAllMatches" value="true" />


<constant name="struts.convention.default.parent.package" value="json-default" />
<!-- 配置action搜索的跟目录-->
<constant name="struts.convention.action.packages" value="com.paper.*" />


    
     
<!-- 日志拦截器 -->
<package name="website-log" extends="struts-default">

<interceptors>  
    <interceptor name="log" class="com.paper.util.LogInterceptor" />   <!-- 自定义拦截器 -->
    <interceptor-stack name="logStack"> 
    <interceptor-ref name="log" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>


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


<action name="*!*" class="com.paper.{1}.action.{2}Action">
    <interceptor-ref name="logStack"></interceptor-ref>
   </action>
   </package>  
   
<!--  <action name="login" class="com.paper.login.action.UserLoginAction">
            <result name="success" type="redirect">jsp/index.jsp</result>
            <interceptor-ref name="logStack"></interceptor-ref>
        </action>

PS:单独这样调用的时候可以调到拦截器,但name与零配置的形式(action!method)不同,故用了通配符,但不能正常调用拦截器

-->

</struts>    


      问题:请问零配置下应该怎样来做日志管理呢?拦截器应该如何配置?求指点。。
举报
yongliuaaa
发帖于5年前 1回/1K+阅
顶部