admin 管理员组

文章数量: 1184232

struts

struts-config.xml配置文件详解 (元素顺序和大概功能)

    • 元素顺序
    • 配置文件讲解
      • XML定义
      • DTD定义
      • struts−config
      • data−sources
      • form−beans
      • global-exceptions
      • global−forwards
      • action−mappings

元素顺序

struts 配置文件struts-config.xml中的元素是有有严格的顺序,如果元素的顺序出错,系统会抛出错误,程序启动失败。正确的顺序如下:

<struts−config><data−sources><data−source></data−source></data−sources><form−beans><form−bean /></form−beans><global-exceptions>  <exception />  </global-exceptions><global−forwards><forward /></global−forwards><action−mappings><action/></action−mappings><controller /><message−resource /><plug−in />
</struts−config>

配置文件讲解

XML定义

<?xml version="1.0" encoding="UTF-8" ?>

DTD定义

<!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"".dtd">

struts−config

<struts-config> 是struts的根元素,它主要有8个子元素,其它元素皆是其子元素

data−sources

<date-sources>元素用来配置应用程序所需要的数据源,可配置多数据源。java语言提供了javax.sql.DateSource接口,所有数据源必须实现该接口。如下配置:

<data-sources>  <!-- key是不同数据源的标识 --><data-source key="a" type="org.apachedmons.dbcp.BasicDataSource">  <!--所用的JDBC驱动类,必须--><set-property property="driverClass" value="com.mysql.jdbc.Driver"/><!--所用的JDBC的URL,必须--><set-property property="url" value="jdbc:mysql://localhost/test"/><!--连结到数据库的用户名,必须--><set-property property="user" value="root"/><!--连结到数据库的密码,必须--><set-property property="password" value="root"/><!--同时打开的最小连结数,缺省值为1,可选--><set-property property="minCount" value="1"/><!--同时打开的最大连结数,缺省值为2,可选--><set-property property="maxCount" value="5"/><!--关于DataSource的描述信息(可选的)--><set-property property="description " value="...."/><!--如果设为true,则表示该连结是只读的,缺省为false。(可选的)--><set-property property="readOnly" value="true"/><!--创建连结的最大允许时间,以秒为单位。(可选的)--><set-property property="loginTimeout" value="10"/><!--如果为true,则每次execute之后会强制回滚。缺省为true。(可选的)--><set-property property="autoCommit" value="true"/></data-source>  <data-source key="b"   type="org.apachedmons.dbcp.BasicDataSource">  ………………   </data-source>  
</data-sources>

此元素我基本没用过,都是在其它配置文件中进行配置

form−beans

<form−beans>元素用来配置绑定到Action的各个FormBean的实例。每个FormBean实例用form-bans的子元素form-bean来定义。form-bean又分普通的FormBan和动态FormBean。

  • 普通form-bean
    普通FormBean需要定义一个JavaBean类,在form-bean元素中指定该类。定义格式如下:

    <form-beans><form-bean name="LoginForm" type="com.login.forms.LoginForm"/>
    </form-beans>
    
    • classname :指定和form-bean无素对应的配置类,默认为org.apache.struts.config.FormBeanConfig,如果自定义,则必须扩展FormBeanConfig类。可有可无。
    • name:ActionForm Bean的惟一标识。必须。
    • type:FormBean对应JavaBean类的全路径。必须。
  • 动态form-bean
    动态form-bean不需要定义对应的javabean类,其元素都在struts-config.xml中定义。定义格式如下:

    <form-bean name="LoginForm" type="org.apache.struts.validator.DynaValidatorForm"><form-property name="userName" type="java.lang.String"/><form-property name="password" type="java.lang.String"/><form-property name="age" type="java.lang.Integer" initial="20"/>
    </form-bean>
    
    • name:ActionForm Bean的惟一标识。必须。
    • type:此为指定 org.apache.struts.validator.DynaValidatorForm。
    • initial:以字符串的形式设置表单字段的初始值,如果没有设置该属性,则是基本类型为0,如果是对象则为null。可有可无。

global-exceptions

<global−forwards>元素主要配置异常处理,它的exception子元素代表全局的异常配置。struts采取配置的方式来处理异常。它用来设置java异常和异常处理类org.apache.struts.action.ExceptionHandler之间的映射。格式如下:

<global-exceptions><exception key="ExceptionID"type="java.lang.Exception"scope="request"path="/global_error.jsp"/>
</global-exceptions>
  • 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:指定Resource Bundle,可有可无

global−forwards

<global−forwards>元素用于配置全局转发,struts首先会在元素中找对应的<forward>,若找不到,则到全局转发配置中找。它包含0个或多个元素,格式如下所示:

<global-forwards><forward name="failed" path="/error.jsp" /><forward name="success" path="/success.jsp" />
</global-forwards>
  • name:转发的唯一的名称
  • path:转发指向资源的相对路径
    注意:此元素还有一个redirect属性,其默认值为false,如果redirect设为true的时候,则用HttpServletResponse.sendRedirect()方法,否则用RequestDispatcher.forward()方法,缺省为false。

action−mappings

<action−mappings>元素用于描述从特定的请求路径到相应的Action类的映射。示例如下:

<action-mappings><!-- ==================== LOGIN/LOGOUT ==================== --><action	path      = "/login"type      = "com.ct10000.ctwelcome.login.actions.LoginAction"name      = "LoginForm"scope     = "request"validate  = "false"input	  = "/login/login.jsp"><forward redirect="true" name="success" path="/main/main.jsp" /><forward name="failure" path="/login/login.jsp" /><forward name="modify" path="/loginUserEdit.do?actionflag=pw&amp;from=login" /></action>
<action-mappings>
  • attribute:设置和Action关联的ActionForm Bean在request和session范围内的key。如:Form Bean存在于request范围内,此项设为“myBenas”,则在request.getAttribute(“myBenas”)就可以返回该Bean的实例。可有可无
  • classsName:和action元素对应的配置元素,默认为:org.apache.struts.action.ActionMapping.可有可无
  • forward:转发到相应的URL路径。可有可无
  • include:指定包含的URL路径。可有可无
  • input:输入表单的URL路径,当表单验证失败时,将把请求转发到该URL。
  • name:指定和Action关联的Action FormBean的名字,该名字必须在Form-Bean定义过。映射请求参数和实体
  • path:指定访问Action的路径,以“/”开头,无扩展名。必须
  • parameter:指定Actgion的配置参数,在Action类的execute()方法中,可以调用ActionMapping对象的getParameter()方法来读取该配置参数。可有可无
  • roles:指定允许调用该Action的安全角色,多个角色之间用,隔开,在处理请求时RequestProcessor会根据该配置项来决定用户是否有权限调用Action权限。可有可无
  • scope:指定ActionForm Bean的存在范围,可选取为request和session,默认为session。
  • type:指定Action类的完整路径。必须
  • unknown:如果此项为true,表示可以处理用户发出的所有无效的Action URL,默认为false;
  • validate:指定是否要调用Action FormBean的validate方法,默认值为ture. 如果不想校验,则必填false

注: forward、include、type属性只能选中其中一项

本文标签: struts