配置文件详解
1、常量配置constant方式1
1.1 乱码
<pre>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
</pre>
1.2 自定义扩展名
<pre>
<constant name="struts.action.extension" value="action,,dylan"></constant>
</pre>
1.3 友好的提示信息
<pre>
<constant name="struts.devMode" value="true"></constant>
</pre>
1.4 设置配置文件修改后自动加载--推荐开发中使用
<pre>
<constant name="struts.configuration.xml.reload" value="true"></constant>
</pre>
2、常量配置constant方式2
在src下添加struts.properties配置文件
<pre>
设置扩展名
struts.action.extension=action,,amdanda
</pre>
3、团队协作开发
<pre>
<include file="com/bjsxt/config/user.xml"></include>
</pre>
4、配置文件加载顺序
struts-default.xml-->struts-plugin.xml(插件)-->struts.xml
5、package的配置
<pre>
<package name="user" namespace="/login" extends="struts-default">
</pre>
6、action的配置
<pre>
<action name="login" class="com.bjsxt.action.LoginAction" method="login">
</pre>
7、result的配置
<pre>
<result name="success">/index.jsp</result>
<result name="failed">/login.jsp</result>
</pre>
8、全局配置
在action的配置中,如果匹配不到对应的请求处理方法,会去找全局结果集。
<pre>
<global-results>
<result name="failed">/login.jsp</result>
</global-results>
在action的配置中,如果不去配置class属性,将会由默认的class来执行。但是返回视图依旧是请求对应的action去相应。
在请求一个不存在的action时,会去匹配到默认的action,没有默认action会报错。
<default-action-ref name="add"></default-action-ref>
<default-class-ref class="com.bjsxt.action.AddAction"></default-class-ref>
</pre>
9、通配符的配置
使用通配符为了减少action的配置,匹配所有,占位符从1开始用{1}表示
<pre>
<action name="user*" class="com.bjsxt.action.AddAction" method="{1}user{2}">
<result>/add.jsp</result>
</action>
</pre>
10、减少action的配置还可以使用DMI(Dynamic Method Invocation动态方法调用),不推荐因为存在安全隐患(官方通告)。
struts.xml配置:
<pre>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
</pre>
Action类中的方法:
<pre>
public String test() {
System.out.println("DMI动态方法调用!");
return "success";
}
</pre>
测试:
结果: