Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 286|回复: 0

[struts学习]Struts-config.xml配置文件讲解

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-10 23:53:54 | 显示全部楼层 |阅读模式
    Struts的核心是struts-config.xml配置文件,在这个文件里描述了所有的Struts组件。
    在这里包括配置主要的组件及次要的组件,下面是struts-config.xml包含主要元素的内容:

    一、    struts-config.xml的主要元素:
    <?xml version=”1.0” encoding=”ISO-8859-1”?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
      

      
      <struts-config>
         
        <data-sources>
            <data-source>
            </data-source>
        </data-sources>

        <form-beans>
            <form-bean / >
        </form-beans>

        <global-forwards>
            <forward / >
        </global-forwards>

        <action-mappings>
            <action / >
        </action-mappings>  
      
       
       
       

       
      
      <controller / >

        <message-resources / >

        <plug-in />

    </struts-config>
         注意:以上各元素的顺序是非常重要的,你的struts-config.xml配置文件必须按照这个顺序进行配置,否

    则在你的容器启动的时候就会出错。

    二、    struts-config.xml的子元素:
    1.<icon / >子元素
        它包含<small-icon / >及<large-icon / >,它的作用是图形化其父元素,
    <small-icon/>的内容是一个16x16的图像文件,而<large-icon/>的内容是一个32x32的图像文件。如下例子:
        <icon>
          <small-icon>
              /images/smalllogo.gif
          </small-icon>
          <large-icon>
             /images/largelogo.gif
          </large-icon>
    </icon>
    2.<display-name / >子元素
        它提供对父元素的短文字(short textual)描述信息,如下:
        <display-name>
                short textual discription of its parent element
        </display-name>
    3.<description / >子元素
        它提供对父元素的完全(full-length textual)的描述信息,如下:
       <description>
         full-length textual discription of its parent element
       </description>
    4.<set-property / >子元素
            它用来设置它的父元素中设定的javaBean的属性值,它一般用在指定的GenericDataSource 属性,
    扩展的ActionMappings以及扩展的 global forwards。如下:
            <set-property property="name of bean property" value="value of bean property" />
              例如:
             <set-property property="driverClass" value="org.gjt.mm.mysql.Driver" />
             <set-property property="user" value="admin"/>
             <set-property property="maxCount" value="4"/>
             <set-property property="minCount" value="2"/>  
             <set-property property="password" value=""/>  
             <set-property property="url" value="jdbc:mysql://localhost:3306/struts"/>

    三、    配置JDBC数据源
    其配置形式如下:
    <data-sources>
    <data-source>
    <set-property property="driverClass" value="fully qualified path of JDBC driver"/>
    <set-property property="url" value="data source URL"/>
    <set-property property=”mincount” value="the minimum number of connections to open"/>
    <set-property property="password" value="the password used to create connections"/>
    <set-property property="user" value="the username used to create connections"/>
    </data-source>
    </data-sources>
    <data-source>的属性及其描述信息如下:
    属  性              描 述 信 息
    Key          绑定在ServletContext上的DataSource实例的索引键,
                  若不设定则缺省为Action.DATA_SOURCE_KEY,如果在应用程序中有多于一个的DataSource,
                  则必须设置Key的值。
    DriverClass    所用的JDBC驱动类(必须的)如:com.microsoft.jdbc.sqlserver.SQLServerDriver
    url    所用的JDBC的URL(必须的)如:jdbc:microsoft:sqlserver://xg088:1433
    MaxCount    同时打开的最大连结数,缺省值为2(可选的)
    MinCount    同时打开的最小连结数,缺省值为1(可选的)
    User    连结到数据库的用户名(必须的)
    Password    连结到数据库的密码(必须的)
    Description    关于DataSource的描述信息(可选的)
    ReadOnly    如果设为true,则表示该连结是只读的,缺省为false。(可选的)
    LoginTimeout    创建连结的最大允许时间,以秒为单位。(可选的)
    AutoCommit    如果为true,则每次execute之后会强制回滚。缺省为true。(可选的)
    举例说明:
    <data-sources>
         <data-source>
             <set-property property=”key” value=” value="WILEY_DATA_SOURCE" />
    <set-property property="driverClass" value="org.gjt.mm.mysql.Driver" />
    <set-property property="url" value="jdbc:mysql://localhost/wileyusers" />
    <set-property property="maxCount" value="5"/>
    <set-property property="minCount" value="1"/>
    <set-property property="user" value="sa"/>
    <set-property property="password" value="yourpassword"/>
    </data-source>
    </data-sources>

    四、    配置FormBean
    <form-bean / >用来定义将要绑定到Action的FormBean的实例。语法如下:
      <form-beans>
         <form-bean name="name used to uniquely identify a FormBean"
                 type=”fully qualified class name of FormBean"/>
      </form-beans>
    例:
    <form-beans>
         <form-bean name="lookupForm" type="wiley.LookupForm" />
    </form-beans>

    五、    配置全局转发
        全局转发可以定义几个<forward/>子元素,struts首先会在<action-mappings>元素中找对应的<forward>,

    若找不到,则到全局转发配置中找。语法如下:
    <global-forwards>
       <forward name="unique target identifier" path="context-relative path to targetted resource "/>
    </global-forwards>
        除了name及path属性之外,还有一个redirect属性,如果redirect设为true的时候,则用

    HttpServletResponse.sendRedirect()方法,否则用RequestDispatcher.forward()方法,缺省为false。
    注:如果为true,则用HttpServletResponse.sendRedirect()方法,此时存储在原来的HttpServletRequest中

    的值将会丢失。
    例子:
    <global-forwards>
    <forward name="success" path="/welcome.jsp"/>
    <forward name="failure" path="/index.jsp"/>
    </global-forwards>
    六、    配置<action-mappings>
        它可以定义几个<action / >子元素,它主要是定义Action实例到ActionServlet类中,语法如下:
    <action-mappings>
      <action path="context-relative path mapping action to a request"
        type="fully qualified class name of the Action class"
        name="the name of the form bean bound to this Action">
        <forward name="forwardname1" path="context-relative path"/>
        <forward name="forwardname2" path="context-relative path"/>
      </action>
    </action-mappings>
    <action/>属性及其描述信息如下:
    属  性    描 述 信 息
    Path    在浏览器的URL中输入的字符(必须的)
    Type    连结到本映射的Action的全称(可选的)
    Name    与本操作关联的Action Bean在<form-bean/>中定义name名(可选的)
    Scope    指定ActionForm Bean的作用域(session和request),缺省为session。(可选的)
    Input    当Bean发生t误时返回的控制。(可选的)
    ClassName    指定一个调用这个Action类的ActionMapping类的全名。缺省用

    org.apache.struts.action.ActionMapping,(可选的)
    Forward    指定处理相应请求所对应的JSP页面。(可选的)
    Include    如果没有forward的时候,它起forward的作用。(可选的)
    Validate    若为true,则会调用ActionForm的validate()方法,否则不调用,缺省为true。(可选的)
    例子:
    <action-mappings>
    <action path="/lookupAction" type="wiley.LookupAction" name="LookupForm"
       scope="request"
       validate="true"
       input="/index.jsp">
    <forward name="success" path="/quote.jsp"/>
    <forward name="faliue" path="/index.jsp"/>
    </action>
    </action-mappings>

    七、    配置RequestProcessor
         在struts-config.xml文件中用<controller/>子元素来定义RequestProcessor,其语法格式如下:
    <controller processorClass="fully qualified class name" />
    <controller />元素属性及其描述信息如下:
    属  性    描  述
    processorClass    指定自定义的RequestProcessor类的全名
    BufferSize    指定用来下载所用的缓存大小。缺省是4096字节。
    contentType    定义response文本类型,缺省是text/HTML
    Debug    定义当前系统的除错级别,缺省是0
    Locale    如果是true,则在用户的session中存放Locale对象,缺省为true
    maxFileSize    指定下载文件最大的大小。缺省是250M
    multipartClass    指定去代替org.apache.struts.upload.DiskMultipartRequestHandler类的类的全名。
    Nocache    如果是true,则会关闭每个response的缓存功能。缺省是false
    TempDir    指定上载文件所用的临时目录。缺省值由容器决定
    例子:
    ① <controller processorClass="wiley.WileyRequestProcessor" />
    ② <controller
         contentType="text/html;charset=UTF-8"
         debug="3"
         locale="true"
         nocache="true"
         processorClass="org.apache.struts.action.RequestProcessor"/>

    八、    配置Message Resources
         在struts-config.xml文件中用<message-resources />元素来定义消息资源。其语法如下:
            <message-resources  parameter="wiley.ApplicationResources"/>
    <message-resources />元素属性及其描述信息如下:
    属  性    描  述
    Parameter    给定资源文件全名
    ClassName    定义处理消息资源的类名的全名,缺省是org.apache.struts.config.MessageResourcesConfig
    Factory    定义MessageResourcesFactory类的全名,缺省是

    org.apache.struts.util.property.MessageResourcesFacotry
    Key    定义绑定在这个资源包中的ServletContext的属性主键,缺省值是Action.MESSAGES_KEY.
    Null    如果为true,则找不到消息key时,则返回null,缺省是true.
    例子:
    ① <message-resources parameter="wiley.ApplicationResources"/>
    ② <message-resources
         parameter="StorefrontMessageResources"
         null="false"/>
    <message-resources
         key="IMAGE_RESOURCE_KEY"
         parameter="StorefrontImageResources"
         null="false"/>
    注意:设定key的目的如下:
    <html:img altKey="navbar.home.image.alt" bundle="IMAGE_RESOURCE_KEY"  
           pageKey="navbar.home.image" width="125" height="15" border="0"/>
    这里说明要到StorefrontImageResources.properties资源文件中找主键值是”navbar.home.image”所对应的

    值。
    这里StorefrontImageResources.properties的内容如下:
    ……
    navbar.home.image=/images/home.gif
    navbar.home.image.alt=Home
    ……
    此处navbar.home.image.alt说明的和<img alt=”Home”……/>一样。

    九、    配置Plug-in
    配置Plug-in如下:
    <plug-in className="wiley.WileyPlugin"/>
    也可如下:
    <plug-in className="com.oreilly.struts.storefront.service.memory.StorefrontMemoryDatabasePlugIn">
       <set-property property="pathname" value="/WEB-INF/database.xml"/>
    </plug-in>
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 13:13 , Processed in 0.366161 second(s), 50 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表