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编辑  收藏  举报