Struts-config.xml配置文件讲解

Struts-config.xml配置文件讲解

1.<struts-config>元素:struts配置文件的根元素。(和它对应的配置类为org.apache.struts.config.MouleConfig类)

      8个子元素:(先后顺序不能变)

              <data-sources>,

              <form-beans>,

              <global-exceptions>,

              <global-forwards>,

              <action-mappings>,

              <controller >,
               <message-resources >,
               <plug-in />。

2.<data-sources>元素:用来配置应用所需要的数据源。

    包含0,1或者多个<data-source>元素,该元素用于配置特定的数据源。<data-source>元素包含多个<set-property>元素,<set-property>元素用于设置数据源的各种属性。

 Example:

    <data-sources>

        <data-source type=”org.apache.commons.dbcp.BasicDataSource”>

            <set-property property=”autoCommit” value=”true”/>

            <set-property property=”description” value=”MYSQL Data Source”/>

            <set-property property=”driverClass” value=”com.mysql.jdbc.Driver”/>

            <set-property property=”maxCount” value=”10”/>

            <set-property property=”minCount” value=”2”/>

            <set-property property=”user” value=”root”/>

            <set-property property=”password” value=””/>

            <set-property property=”url” value=”jdbc:mysql://localhost:3306/数据库名称”/>

        </data-source>

    </data-sources>

配置了数据源后,就可在Action类中访问数据源了

Javax.sql.DataSource dataSource = getDataSource(request);

Javax.sql.Connection myConnection = dataSource.getConnection();

配置多个数据源:

  <data-source key=”A” type=”org.apache.commons.dbcp.BasicDataSource”>

       …property as before…

  </data-source>

<data-source key=”B” type=”org.apache.commons.dbcp.BasicDataSource”>

         …property as before…

    </data-source>

在Action中去得数据源:

    dataSourceA = getDataSource(request,”A”);

dataSourceB = getDataSource(request,”B”);

3.<form-beans>元素:用来配置多个ActionForm Bean。

    包含<form-bean>元素,该元素的属性有:

    1.className:指定和<form-bean>元素对应的配置类,默认值为org.apache.struts.config.FormBeanConfig。如果在这里设置自定义类,则该类必须扩展FormBeanConfig类。

    2.name:指定该ActionForm的唯一标识符,整个struts框架利用该标识符来引用这个bean。(必需的)

    3.type:指定ActionForm类的完整实现类名(包括路径)。(必需的)

    Example1:

          <form-bean name="UserLoginForm"

                        type="com.free.web.struts.form.UserLoginForm">

           </form-bean>

Example2(动态ActionForm):

<!-- sample form bean descriptor for a DynaActionForm

        <form-bean

            name="logonForm"

            type="org.apache.struts.action.DynaActionForm">

            <form-property

                name="username"

                type="java.lang.String"/>

            <form-property

                name="password"

                type="java.lang.String"/>

       </form-bean>

4.<global-exceptions>元素:用于配置异常处理类。

  包含多个<exception>元素:用来设置java异常和异常处理类org.apache.struts.action.ExceptionHandler之间的映射。

   属性:className:指定和<exception>元素对应的配置类。默认值为org.apache.struts.config.ExceptionConfig。

            Handler:指定异常处理类。默认值为org.apache.struts.action.ExceptionHandler。

            Key:指定在Resource Bundle中描述该异常的消息key。

            Path:指定当一场发生时的转发路径。

            Scope:指定ActionMessages实例的存放范围,可选值包括request和session。默认值为request。

            Type:指定所需处理的异常类的名称。(必需的)

            Bundle:指定Resources Bundle。

         Example:

            <global-exceptions>

                 <exception

                      key="expired.password"

                      type="app.ExpiredPasswordException"

                      path="/changePassword.jsp"/>

            </global-exceptions>

5.<global-forwards>元素:用来声明全局的转发关系。

  包含多个<forward>元素,<forward>元素用于把一个逻辑名映射到特定的URL。

  属性:className:指定和<forward>元素对应的配置类。默认值为org.apache.struts.action.ActionForward。

           contextRelative:如果此项为true,表示当path属性以”/”开头时,给出的是相对于当前上下文的URL。默认值为false。

           Name:转发路径的逻辑名。(必需的)

           Path:指定转发或重定向的URL。(必需的)而且必须以”/”开头。contextRelative为true时,表示URL路径相对于当前上下文(context-ralative); contextRelative为false时,表示URL路径相对于当前应用(application-ralative);

            Redirect:此项为true,执行重定向操作;为false,执行请求转发操作。

   Example:

           <global-forwards>

           <!-- Default forward to "Welcome" action -->

           <!-- Demonstrates using index.jsp to forward -->

           <forward

                name="welcome"

                path="/Welcome.do"/>

           </global-forwards>

   如果.jsp文件把请求转发给Action,可以使用一下代码:

         <html:link forward=”forward1”>

   如果Action把请求转发给.jsp文件,可以使用一下代码:

           Return (mapping.findForward(“forward2”));

6.<action-mappings>元素:包含<action>元素,描述了从特定的请求路径到相应的Action类的映射。

在<action>元素中可以包含多个<exception>和<forward>元素,它们分别配置局部的异常

处理及请求转发仅被当前的Action所访问。

属性:

(1)      attribute: 设置和Action关联的ActionForm Bean在request或session范围内的属性key。例如,假定Form Bean存在于request范围内,并且此项设置为”myBean”,那么request.getAttribute(“myBean”)就可以返回该Bean的实例。

(2)      className:和<Action>元素对应的配置元素。默认值为org.apache.struts.action.ActionMapping。

(3)      forward:指定转发的URL路径。

(4)      includes:指定包含的URL路径。

(5)      input:指定包含输入表单的URL路径。当表单验证失败时,将把请求转发到该URL。

(6)      name:指定和该Action关联的ActionForm Bean的名字。该名字必须在<form-bean>元素中一定过。

(7)      path:指定访问Action的路径,它以”/”开头,没有扩展名。

(8)      parameter:指定Action的配置参数。在Action类的execute()方法中,可以调用ActionMapping对象的getParamter()方法来读取该配置参数。

(9)      roles:指定允许调用该Action的安全角色。多个角色之间以逗号隔开。在处理请求时,RequestProcessor会根据该配置项来决定用户是否有调用Action的权限。

(10)  scope:指定ActionForm的存在范围。可选值为request和session。默认为session

(11)  type:指定实现该Action类的真实类的路径和名称。(完整类名)

(12)  unknown:如果此项为true,表示可以处理用户发出的所有无效的ActionURL。默认值为false。

(13)  validate:指定是否要先调用ActionForm Bean的validate()方法。默认为true

<Action>元素的forward,includes,type属性相互排斥(即只能设置其中一项)。

Example:

         <Action   path=”/search”

                   type=”addressbook.actions.SearchAction”

                   name=”searchForm”

                   scope=”request”

                   validate=”true”

                   input=”/search.jsp”>

                   <forward name=”success” path=”/display.jsp”/>

          </action>

注意:局部<forward>元素和<exception>元素的优先级大于全局的。

7.<controller>元素:用于配置ActionServlet。

  属性:

(1)      bufferSize:指定上载文件的输入缓冲的大小。默认值:4096

(2)      calssName:指定和<controller>元素对应的配置类。默认值为org.apache.struts.config.ControllerConfig。

(3)      contentType:指定响应结果的内容类型和字符编码。默认值为text/html。如果在Action或jsp网页中也设置了内容类型和字符编码,将会覆盖该设置。

(4)      locale:指定是否把Locale对象保存到当前用户的session中。默认值false

(5)      processorClass:指定负责处理请求的Java类的完整类名。默认值为org.apache.struts.action.RequestProcessor。或者扩展了该类的自定义类。

(6)      tempDir:指定处理文件上载的临时文件目录。如果没有设置此项,将采用Servlet容器为Web应用分配的临时工作目录。

(7)      nochache:如果为true,在响应结果中将加入特定的头参数:pragma,cache-control和Expires,防止页面被存储在客户浏览器的缓存中。默认值为false。

Example:

       <controller  

contentType=”text/html;charset=UTF-8”

locale=”true”

processorClass=”CustomRequestProcessor”/>

8.<message-resources>元素:用来配置resource bundle,resource bundle用于存放本地化消息文本。

  属性:

(1)      className:和.<message-resources>元素对应的配置类。默认值为org.apache.struts.config.MessageResourcesConfig

(2)      factory:指定消息资源的工厂类。默认值为org.apache.struts.util.property.MessageResourcesFacotry

(3)      key:绑定在这个资源包中的ServletContext的属性主键,缺省值是Action.MESSAGES_KEY.

(4)      Null:指定MessageResources类如何处理未知的消息key。如果此项为true,将返回空字符串。如果为false,将返回类似”???global.label.missing???”的字符串,默认值为true

(5)      Parameter:指定recourse bundle的消息资源文件名。该路径相对于WEB-INF/classes而言。

Example:

         <message-resources parameter="MessageResources" />

9.<plug-in>元素:用于配置struts插件。

  属性:className:指定struts插件类。该插件类必须实现org.apache.struts.action.PlugIn接口。

  Example:

   (1)<plug-in className="org.apache.struts.tiles.TilesPlugin" >

      <!-- Path to XML definition file -->

      <set-property property="definitions-config"

                       value="/WEB-INF/tiles-defs.xml" />

      <!-- Set Module-awareness to true -->

      <set-property property="moduleAware" value="true" />

    </plug-in>

   

   (2)<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

    <set-property

        property="pathnames"

        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>

  </plug-in>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值