Strust1之配置文件详解

想要使用Strust1只需要配置两个文件:web.xml和struts-config.xml

web.xml

  • web.xml文件主要是安装Strust1的配置文件。
  • 实际上,Struts的入口点是一个名为ActionServlet的Servlet。ActionServlet是总控制器,它是struts给我们提供的,我们无需自己写,只需要配置就可以了。在第一次访问Struts时,建立这个ActionServlet类的对象实例,并调用ActionServlet类中的init方法来进行初始化(其实是读取struts-config.xml文件中的内容,并根据struts-config.xml中的内容来初始化相关的资源)。因此,就要在web.xml文件中安装这个ActionServlet,并在ActionServlet的初始化参数中指定struts-config.xml的位置。
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  

    <init-param>
        <param-name>config</param-name>  
        <param-value>/WEB-INF/conf/struts-config.xml</param-value>  
    </init-param>  
    <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

struts-config.xml

  • struts-config.xml是struts的核心内容,只要是我们想要使用struts,就必须配置struts-config.xml这个文件。所有的配置参数都要放在struts-config这个根目录下。
  • 最常用的配置大概是以下7种:

    • FormBean:在<form-beans>元素中配置。
    • Action映射:在<action-mappings>元素中配置。
    • 全局Forwards:在<global-forwards>元素中配置。
    • 全局异常(Exception):在<global-exceptions>元素中的配置。
    • 控制器(Controller):在<controller>元素中配置。
    • 信息资源:在<message-resources>元素中的配置。
    • 插件:在<plug-in>元素中配置。
  • 在日常开发中最重要的是FormBean和Action,是整个Struts的核心。

    <!-- 配置FormBean。 -->
<form-beans>
        <form-bean name="LoginActionForm"        type="com.webapp.form.LoginActionForm">
        </form-bean>
</form-beans>

这里的name是Form的名字,是唯一标示,这个name会在action中用到。type是Form所在的路径,由包名+类名所组成。

<!-- 配置Action。 -->
<action-mappings>
        <action path="/Login" 
        name="LoginActionForm" 
        type="com.webapp.action.LoginAction"
        scope="request">
        <forward name="success" path="/LoginSuccess.jsp"></forward>
        <forward name="error" path="/LoginFailed.jsp"></forward>
        </action>
</action-mappings>

name是关联某个FormBean的唯一标示。path是将来访问该action的资源名,一般为http://localhost:8080/web/path。type是Action的路径,由包名+类名组成。scope是指定FormBean所存在的范围,有session和request两种,默认是session。forward是路径跳转。

  • 配置全局Forwards
    全局Forwards在<global-forwards>里配置。
<global-forwards>  
  <forward  name="forward1"  path="/a.do"/>  
  <forward  name="forward2"  path="/b.jsp"/>  
<global-forwards> 

name表示转发或者重定向路径的名字。path表示转发或者重定向的路径,一般都是相对路径。

  • 配置全局异常(Exception)
    该元素主要配置异常处理,它的exception子元素代表全局的异常配置。struts采取配置的方式才操作异常,它用来设置java异常和异常处理类org.apache.struts.action.ExceptionHandler之间的映射。它有七个属性,如下所示:
    1. className:指定和exception元素对应的配置类,默认为:org.apache.struts.config.ExceptionConfig。可有可无。
    2. Handler:指定异常得理类,默认为:org.apache.struts.action.ExceptionHandler。可有可无
    3. key:指定在Resource Bundle中描述该异常的消息key
    4. path:指定当异常发生时的转发路径。
    5. scope:指定ActionMessages实例的存放范围,可选值包括:request和session,默认为request。可有可无。
    6. type:指定所需处理异常类的名字,必须。
    7. bundle:指定Resource Bundle
<global-exceptions>  
  <exception   
      key="global.error.invalidlogin"  
      path="/error.jsp"  
      scope="request"  
      type="com.hn.tree"/>  
</global-exceptions> 
  • 配置控制器(Controller)
    该元素用于配置ActionServlet。它具有以下属性。
      
   1. bufferSize:指定上载文件的输入缓冲大小,可选,默认为4096
  2. className:指定和controller元素对应的配置类,默认为org.apache.struts.config.ControllerConfig
  3. conentType:字符编码,如果在Action和JSP网页中设置了,则覆盖该设置。
  4. locale:指定是否把Locale对象保存到当前用户的session中,默认值为false.
  5. processorClass:指定负责请求的java类完整路径。
  6. tempDir:指定处理文件的临时工作目录,如果此项没有设置,将采用Servlet容器为web应用分配的临时工作目录。
  7. nochache:如果为true:在响应结果中将加入特定的头参数:Pragma,Cache-Control和Expise,防止页面被保存在客户端的浏览器中,默认为false
<controller  
  contentType="text/html;charset="UTF-8""  
  locale="true"  
  processorClass="con.ok"/> 
  • 配置信息资源

主要配置本地化消息文本,它具有以下属性。
  1. key:指定Resource Bundle存放的ServletContext对象中时采用的属性Key,默认由Globals.MESSAGES_KEY定义的字符串常量,只允许一个Resource Bundle采用默认的属性Key。
  2. prameter:指定MessageSources的资源文件名,如果为:a.b.ApplicationResources,则实际对应的文件路径为:WEB-INF/classes/a/b/ApplicationResources.properties. 

<message-resources
            key="BRD"
            parameter="jp.co.dreamarts.insuite.resources.BRD_Resources" />
  • 配置插件
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
        <set-property property="definitions-config" value="/WEB-INF/tiles-def.xml" />
    </plug-in>

猜你喜欢

转载自blog.csdn.net/wangchengming1/article/details/78662344