struts2的配置

1,在webl.xml中的进行过滤器的配置,
如:<filter>
  <filter-name>struts2</filter-name>
  <filter-class>
  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter   
  </filter-class>
</filter>     
<filter-mapping>
  <filter-name>struts2</filter-name> 
  <url-pattern>/*</url-pattern>    
</filter-mapping>


是将满足<url-pattern>/*</url-pattern>的url路径的都留下,不满足这个条件的都过滤掉。
2 在struts2中可以设置路径的扩展名,例如可以设置为.action或.do,不过一般不用,因为设置了容许动态方法为true时会矛盾,
必须设置的路径的最后面为.action或.do,系统才认可。而设置了动态方法后最后面就会有方法名或参数,这样就会有矛盾,
所以在struts2中不设置<constant name="struts.action.extension" value="do,action"/>。
如:<constant name="struts.action.extension" value="do,action"/>注释:一般不设置。


3在struts2中可以设置默认的字符集,通过设置struts.i18n.encoding的值为UTF-8,这些配置都在struts2的配置文件中。
如:<constant name="struts.i18n.encoding" value="UTF-8"/>


4在struts2中可以设置浏览器中是否有缓存,通过struts.serve.static.bowserCache的值为true,默认的是为true,一般不用。
如:<constant name="struts.serve.static.bowserCache" value="false"/> 


5 在struts2中可以设置是否自动加载xml文件,通过struts.configuration.xmlreload的值为true,则会自动加载xml文件。
如:<constant name="struts.configuration.xmlreload" value="true"/>
设置为true则会自动加载xml文件,
还有一个会可以自动加载xml文件的struts2的设置,就是开发模式:struts.devMode的值为true


6 在struts2中可以设置是否是开发模式,通过struts.devMode的值为true,则会处于开发模式,修改xml文件、java和前台文件都会自动加载。
不用重新启动服务器
如:<constant name="struts.devMode" value="true"/>


7 在struts2中如果需要将struts2和spring集成起来,则需要通过设置struts.objectFactory的值为spring。
如:<constant name="struts.objectFactory" value="spring"/>


8 在struts2中可以设置是否容许动态方法,通过struts.enabel.DynamicMethodInvocation的值为true,则容许通过在路径后面通过"!"+方法名,如:http://localhost:7001/test20120208/login!loginUser
如:<constant name="struts.enable.DynamicMethodInvocation" value="true"/>


9 在struts中可以包含多个配置文件,通过include,配置文件从src的下面开始,
如:<include file="com/action/struts2.xml"/>
加载struts2.xml的配置文件。


10在struts2中paceage中的属性namespace的值,它是通过命名空间(路径的),一般action的名字只是一个字符串,而路径中例如/test/login!loingUser这是表示/test/login命名路径下的loginUser的方法。而action一般最多表达login,而默认的namespace的值为/,这时表的的路径只是:/login!loginUser。
所以需要namespace的值设置为/test,这样路径就是namespace+action的共同加起来。
总的来说路径:是通过namespace+action一起加起来。而action是只能表达一个字符串
如:<package name="default" namespace="/test" extends="struts-default">
        <default-action-ref name="index" />
        <action name="login" class="userAction" >
            <result name="success">
                /main.jsp
            </result>
        </action>
    </package>
则能处理的路径是:/test/login!XXX。
而:<package name="default" namespace="/" extends="struts-default">
        <default-action-ref name="index" />
        <action name="login" class="userAction" >
            <result name="success">
                /main.jsp
            </result>
        </action>
    </package>
则能处理的路径是:/login!XXX。
11 在struts2配置文件中有global-result来配置全局result的设置。不过如果在某个action中的result的name的值相同,则优先的是某个action的result。就好像全局和非全局变量类似。
如:<package name="default" namespace="/test" extends="struts-default">
        <default-action-ref name="index" />
        <global-results>
        <result name="success">/admin.jsp</result>
        </global-results>
        <action name="login" class="userAction" >
            <result name="success">
                /main.jsp
            </result>
        </action>
    </package>
当return的值为success时,则 优先的是返回到main.jsp,返回的页面路径是从WebRoot开始的。/main.jsp是表示从WebRoot下的main.jsp


12 struts2中的result中可以重定向,通过type属性可以重定向到action和别的包下的action。一般都不怎么用type属性,一般都用name属性。


13 在struts2中有拦截器的设置,拦截器的作用在执行这个action的方法前,先执行拦截器的方法。然后再执行action的方法。
拦截器:public class UserInterceptor extends AbstractInterceptor{


@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
System.out.println("这里是拦截器");

return invocation.invoke();
}


}
就是在执行action的某个方法前执行拦截器的方法。
拦截器的配置如下:
<package name="default" namespace="/" extends="struts-default">
        <interceptors>   
        <interceptor name="userInterceptor" class="com.action.interceptor.UserInterceptor"/>//定义拦截器
        </interceptors>
        <global-results>
        <result name="success">/admin.jsp</result>
        </global-results>
        <action name="login" class="userAction" >
        <interceptor-ref name="userInterceptor"></interceptor-ref>//使用拦截器
        <result name="success">/main.jsp</result>
              
        </action>
    </package>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值