struts2 lesson two 主要配置文件,及简单验证,Tomcat中的乱码,default-action-ref
配置文件加载依次是如下:如果有相的常量,则后面把前面的替代掉。
1、struts.default.xml
2、struts-plugin.xml
3、struts.xml
Constant --一般喜欢放在这里,不放在struts.properties
常用:struts.devMode = false 初期一般初始为:true
<Constant name="struts.devMode" value="true"/>
<Constant name="struts.i18n.encoding" value="UTF-8"/>
Package 解决Action重名,方便继承
name 包名
extends 父包
namespace 名空间,这个地方就是用来解决重名的,
如下,如果名称相同,则配置最后一个,执行是admin
<package name="user" namespace="/" extends="struts-default"> <action name="login" class="net.nw.action.UserAction"> <result name="success_login">/success.jsp</result> <result name="fail_login">/fail.jsp</result> </action> </package>
<package name="admin" namespace="/" extends="struts-default"> <action name="login" class="net.nw.action.AdminAction"> <result name="success_login">/admin.jsp</result> <result name="fail_login">/fail.jsp</result> </action> </package>
要解决这一问题则要加上namspace="'如下
<package name="user" namespace="/user" extends="struts-default"> <action name="login" class="net.nw.action.UserAction"> <result name="success_login">/success.jsp</result> <result name="fail_login">/fail.jsp</result> </action> </package>
<package name="admin" namespace="/admin" extends="struts-default"> <action name="login" class="net.nw.action.AdminAction"> <result name="success_login">/admin.jsp</result> <result name="fail_login">/fail.jsp</result> </action> </package>
当然package还可以用来写共有的部分让其它的package继承如下:
<package name="default" namespace="user" extends="struts-default"> ------------这就是父类
<global-result>
<result name="success_login">/success.jsp</result>
<result name="fail_login">/fail.jsp</result>
</global-result>
</package>
<package name="user" namespace="user" extends="default"> ------------这就是子类:继承了父类
<action name="login" class="net.nw.action.UserAction"> </action> </package>
<package name="admin" namespace="admin" extends="default"> ------------这就是子类:继承了父类
<action name="login" class="net.nw.action.AdminAction"> <result name="success_login">/admin.jsp</result> <result name="fail_login">/fail.jsp</result> </action>
</package>
Action
name 动作名称
class 实现类 如果这个类为空说明只是用来跳转,这最好写在上面说的父类定义一个ACTION这样到处可以用了。
Result
4、struts.properties:default properties can be overridden by a struts.properties file in the root of the classpath
如:struts.action.extension=do 这样默认的action就会被这个文件重写了
5、web.xml
如果struts2中struts.xml jsp中都设置了utf-8还出来乱码,有可能就是如下原因 tomcat server.xml中加上最后一句UEIEncoding="UTF-8"
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
default-action-ref:默认的action:如果所有action都没有找到的话就匹配这个action如下:
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="error"></default-action-ref>
<action name="exit">
<result>/exit.jsp</result> </action>
<action name="error">
<result>/error.jsp</result>
</action>
</package>
<package name="error" namespace="" extends="default"> ----------------------这是第二种处理error的方法,放所有之包之前 ,父包之后,原理是:如果找不到就匹配第一个带*的action
<action name="**"> ----两个**说明可以匹配带/
<result>/error.jsp</result>
</action>
</package>
posted on 2013-05-09 19:48 peter.peng 阅读(203) 评论(0) 编辑 收藏 举报