Struts的配置详解

来源:互联网 发布:android 监听网络变化 编辑:程序博客网 时间:2024/06/02 04:50

在 Struts 的应用开发中,主要涉及到两个配置文件,即 web.xml 和 Struts-config.xml   其中 web.xml 是所有 Java Web 应用所需要的,而后者是 Struts 应用所专有的.

      在采用 MyEclipse 开发Struts 应用时,这些配置文件一般可以由 MyEcplise 自动配置和管理,在某些特殊情况下只需稍微进行一下调整即可

      在web.xml中 和 Struts-config.xml有关的配置项主要有:配置中央控制器 ActionServlet 及其初始化参数--配置欢迎文件清单--配置错误处理--配置Struts标签库

      在Struts-config.xml 中主要配置以下项目: 配置数据源--配置ActionForm Bean--配置异常处理--配置全局转发关系--配置Action映射--配置消息资源

详细的配置示例如下:  web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"

                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"                                             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  

                                  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>action</servlet-name>         //配置一个 servlet 名为action,类为org.apache.struts.action.ActionServlet
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>     //配置 servlet的初始参数config参数用来设置struts-config.xml的路径 
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>     //调试的详细级别,0(off),1(最不严格)直到6(最严格) 大多数Struts组件设置为级别 0 至 3
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>      //应用配置文件的Digester 的调试详细级别,级别设置情况类似 debug 参数
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>     //设置该 servlet 在web应用启动时.被加载的次序,数值越小就越先加载,若为负或没有设置,就在首次访问时再加载
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>//配置一个servlet 映射, *.do 表明 ActionServlet 只负责处理所有以 .do 结尾的 url,可以更改,但推荐默认
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>//配置欢迎文件清单,当访问Web应用的根 url 时,将按此设置依次寻找,找到后将被自动执行.
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

<jsp-config>            //设置jsp的配置信息

<taglib>

<taglib-uri>/strust-html</taglib> //配置Struts-html 标签库

<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>

</taglib>

<taglib>

<taglib-uri>/struts-bean</taglib> //配置Struts-bean标签库

<taglib-location>/WEB-INF/tld/struts-bean.tld<taglib-cation>

</taglib>

<taglib>

<taglib-uri>/struts-logic</taglib>  //配置Struts-logic标签库

<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>

</taglib>

</jsp-config>

<error-page>

<error-code>404</error-code>          //当容器波捕获到HTTP404错误时,用此页面来代替原始的404错误信息呈现给用户

<location>/error/404.htm</location>    起到包装信息的作用

</error-page>

<error-page>

<error-code>500</error-code>

<location>/error/500.htm</location>

<error-page>

<exception-type>exception-type</exception-type>  //当容器捕获到 exception-type 所指定的异常是,用此页面代替原始<loaction>/error/error.htm</location>                         异常信息呈现给用户

</error-page>

</web-app>

 

 

 

Struts-config 的配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//
DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds
/struts-config_1_3.dtd">


<struts-config>
<data-sources>
 <data-source type="org.apache.commons.dbcp.basicDataSource">
  <set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
  <set-property property="url" value="jdbc:mysql://localhost:3306/member?characterEncoding=gb2312"/>
  <set-property property="username" value="root" />
  <set-property property="password" value="root" />
  <set-property property="minActive" value="2" />
  <set-property property="maxActive" value="20" />
  <set-property property="defaultAutoCommit" value="true" />
 </data-source>
</data-sources>
<!-- ==========<data-sources>和<data-source>的配置说明======================================= -->

在<data-sources>中可以设置多个<data-source>,<data-source>用来配置一个数据源,<data-source>的type属性用来指定一个数据
源的实现类,如 jakartar 的开源项目 DBCP: org.apache.commons.dbcp.BasicDataSource
在该标签体内通过<set-Property>标签来配置数据源的各种属性,各个属性作用说明如下:
 DriverClassName:该数据源所用到的JDBC驱动    url:连接数据库所用的 url      username:连接数据库用的账号  password:连接数据库用的密码
minActive:数据源的最小连接数  maxActve:数据源的最大连接数       defaultAutoCommit:是否自动提交

<!--============================================================================= -->

  <form-beans >
    <form-bean name="userLoginForm" type="struts.form.UserLoginForm" />
    <form-bean name="accountForm" type="org.apache.struts.action.DynaActionForm" />
     <form-property name="name" type="java.lang.String" />
     <form-property name="age" type="java.lang.Integer" />
     <form-property name="phone" type="java.lang.String" />
     <form-property name="address" type="java.lang.String" />     
  </form-beans>
  
  <!-- =========================<form-beans> 和 <form-bean>的配置说明====================== -->
  在<form-beans>中可以设置多个<form-bean>,<form-bean>用来设置ActionForm Bean ..<form-bean>有两个属性
  name:为当前一个 ActionForm Bean 指定一个供访问的名字          type:指定当前 ActionForm Bean 的完整类名
  如果要配置动态 ActionForm 的话 ,可使用<form-property>来设置表单的属性,<form-property>有三个属性
  name:表单属性的名称     type:表单属性的值的类型       initial:该属性的初始值
  
  <!-- ============================================================================ -->

  <global-exceptions >
   <exception key="global.error.SQLError"
         path="/errorPages/sql.jsp"
         scope="request"
         type="java.sql.SQLException" />
  </global-exceptions>
  
  <!-- ==================配置异常处理==================================================== -->
  用于配置 java异常与异常处理类之间的映射,其属性说明如下:
  key:消息资源文件中定义的消息key        path:异常发生时的转发路径
  scope:指定ActionMessage 实例存放的范围,默认为request,也可以选session
  type:所需处理的异常类名
  
  <!-- =========================================================================== -->
  <global-forwards />
  <action-mappings >
    <action
      attribute="userLoginForm"
      input="/form/userLogin.jsp"
      name="userLoginForm"
      path="/userLogin"
      scope="request"
      type="com.yourcompany.struts.action.UserLoginAction"
      cancellable="true" >
 <forwards name="success" path="/index.jsp" />
 </action>
  </action-mappings>
   <!-- ==============<action-mappings>和<action>的配置说明================================ -->
 <action-mappings>用来设置多个<action>,<action>用于配置一个Action,在<action>中可使用<forward>来  为该Action
 设置一个请求转发  <action>的属性说明如下:
 attribute:设置与当前 Action 相关联的 ActionForm Bean在指定范围内的名称   
 input:  指定包含输入表单的URL路径,表单验证失败时,请求会被转发到该URL中
 name:  指定一个在 <form-beans>中定义过的与该 Action 关联的名字
 path:  指定访问Action的路径,以 "/"开头,没有扩展名
 scope:指定ActionForm Bean 的存在范围,可以选request 和 session,默认为 session
 type:  指定Action 类的完整类名
 validate:指定是否要先调用 ActionForm Bean 的 validate() 方法,默认为 true  
  <!-- ===================================================================== -->
  <controller contentType="text/html;charset=UTF-8"
       locale="true"
       processorClass="CustomRequestProcessor"/>  
  
  <!-- =============<controller>的配置说明========================================= -->
  用于配置 ActionServlet  其属性说明如下:
  bufferSize: 指定上传文件的输入缓冲的大小,默认为4096
  className:指定当前控制器的配置类,默认为 org.apache.struts.config.ControllerConfig
  contentType:指定相应结果的内容类型和字符编码
  locale: 指定是否把 locale 对象保存到当前用户的 session 中,默认为 false
  proccessorClass:指定负责处理请求的java类的完整类名 默认为 org.apache.struts.requestProccessor
  temDir:指定文件上传时的临时工作目录,如果没有设置,将使用 Servlet容器为 Web 应用分配的临时工作目录
  nochache: 为true时,在相应结果中加入特定的头参数 Pragma Cache-Control ..Expires 防止页面被存储在浏览器的缓存中
                                默认为false
  
  <!-- ===================================================================== -->
 

  <message-resources parameter="com.yourcompany.struts.ApplicationResources" /> 
   <!-- 为 struts 框架设置一个消息资源绑定 -->
   
   <plug-in
   className="org.apache.struts.validator.ValidatorPlugIn">
   <set-property property="pathnames"
        value="/WEB-INF/validator-rules.xml,/WEB-INF/vlaidation.xml" />
   </plug-in>
   <!-- 用于配置Struts插件,通过className属性指定插件的类名 下面的可以设置属性,其说明如下:
        Propertiy :插件的属性名称         value:该名称所配置的值 -->
</struts-config>

 

原创粉丝点击