struts2配置文件详解
1、 常量配置 方式1
- 首先找到找到default.properties
1.1、 乱码
- 在其中搜索encoding
- 在struts.xml中添加如下编码:
<!-- 乱码解决 --> <constant name="struts.i18n.encoding" value="UTF-8"></constant> |
1.2、 自定义扩展名
- 在其中搜索action,,
- 在struts.xml中添加如下编码:
<!-- 自定义扩展名 --> <constant name="struts.action.extension" value="action,,yxxy"></constant> |
还需要在web.xml中修改如下:
所访问的页面中修改如下:
1.3、 友好的提示信息
在其中搜索encodin
g
在struts.xml中添加如下编码:
<!-- 友好的提示信息 --> <constant name="struts.devMode" value="true"></constant> |
2、 常量配置 方式2
在src下添加struts.properties配置文件
#自定义扩展名 struts.action.extension=action,,yxxy |
3、 团队协作开发
4、 package的配置(例:user.xml)
<!-- 包的名称自定义,可以配置多个包;namespace命名空间:不同模块可以指定不同的空间; extends继承 值是直接或者间接继承struts-default --> <package name="login" namespace="/user" extends="struts-default"> |
5、 action的配置
<!-- name是url请求名,不需要加/或者后缀.action class是处理url请求对应的java类,class要求包名+类名 并且该类要有公共的无参构造方法 method配置处理请求类的处理方法,默认为execute;方法要满足公共的,返回值为String,无参 --> <action name="login" class="com.yxxy.action.LoginAction" method="login"> |
6、 result的配置(user.xml)
7、 全局配置(user.xml)
在action的配置中,如果匹配不到对应的请求处理方法,会去全局结果集
在请求一个不存在的action时,会去匹配默认的action,没有默认的action会报错。
在action的配置中,如果不去配置class属性,将会由默认的class来执行,默认的class是ActionSupport类;如果配置了全局默认class,将会由默认全局class去执行,但是返回视图依旧是请求对应的action去响应。
8、 通配符的配置
9、 DMI(Dynamic Method Invocation动态方法调用)
不推荐使用,存在一些安全隐患。使用格式:访问路径/ActionName!MethodName
struts.xml
<!-- DMI动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> |
Action类中的方法:
public String test() { System.out.println("DMI动态方法调用!"); return "success"; } |
测试:
http://localhost:8080/struts_login/user/login!test.action