struts配置参数详解

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:

<span style="font-family:Comic Sans MS;font-size:14px;">    <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></span>

配置了数据源后,就可在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" >

    <span style="font-family:Comic Sans MS;font-size:14px;"><plug-in className="org.apache.struts.tiles.TilesPlugin" ></span><span style="font-family: 'Comic Sans MS';font-size:14px; "> </span><wbr style="font-family: 'Comic Sans MS';font-size:14px; "><span style="font-family: 'Comic Sans MS';font-size:14px; "> </span><wbr style="font-family: 'Comic Sans MS';font-size:14px; "><span style="font-family: 'Comic Sans MS';font-size:14px; "> </span><wbr style="font-family: 'Comic Sans MS';font-size:14px; "><span style="font-family: 'Comic Sans MS';font-size:14px; "> </span><wbr style="font-family: 'Comic Sans MS';font-size:14px; "><span style="font-family: 'Comic Sans MS';font-size:14px; "> </span><!-- 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></wbr></wbr></wbr></wbr>

(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>

struts-config.xml

[html] view
plain
copyprint?

  1. <action path="/login" type="com.jialin.LoginAction" name="userForm"
  2. scope="request" validate="true" attribute="uf">
  3. <forward name="success" path="/LoginSuccess.jsp" />
  4. <forward name="fail" path="/LoginFail.jsp" />
  5. </action>

其中 validate和attribut有什么用?

validate,是否验证表单数据。

我们在ActionForm中,重写父类的validate方法,当从表单收集完数据放到ActionForm后,如果配置文件中validate=true,将调用该方法,这里我们可以做一些数据验证。

[java] view
plain
copyprint?

  1. @Override
  2. public ActionErrors validate(ActionMapping mapping,
  3. HttpServletRequest request) {
  4. System.out.println("-------ActionForm.validate()从表单收集完数据放到ActionForm后做验证--------");
  5. return super.validate(mapping, request);
  6. }

当然,如果系统安全性各方面要求不高,我们一般的验证都是放在javascript里的。

attribute

如果我们配置了attribute属性,我们在jsp中要获取actionform中的值得时候,form名就变为attribute设置的值。而不再是form-bean节点下 name属性的值。

例如

[html] view
plain
copyprint?

  1. <struts-config>
  2. <!-- set ActionForm info-->
  3. <form-beans>
  4. <form-bean name="userForm" type="com.jialin.UserActionForm" />
  5. </form-beans>
  6. <action-mappings>
  7. <!-- Set path,action,actionform,scope,forward info -->
  8. <action path="/login" type="com.jialin.LoginAction" name="userForm"
  9. scope="request" validate="true" attribute="uf">
  10. <forward name="success" path="/LoginSuccess.jsp" />
  11. <forward name="fail" path="/LoginFail.jsp" />
  12. </action>
  13. </action-mappings>
  14. </struts-config>

如果我们要用el表达式取表单的值,不能使用${userForm.name},而是${uf.name}

ActionForm中还可以重写父类的reset的方法,可以在把收集表单数据往ActionForm中放之前做一些处理

[java] view
plain
copyprint?

  1. @Override
  2. public void reset(ActionMapping mapping, HttpServletRequest request) {
  3. System.out.println("------------ActionForm.reset()<span style="font-family:Calibri;">可以</span><span lang="zh-CN" style="font-family:宋体;">在把收集表单数据往</span><span lang="en-US" style="font-family:Calibri;">ActionForm</span><span lang="zh-CN" style="font-family:宋体;">中放之前做一些处理</span>-----------");
  4. }
时间: 2024-10-13 01:09:30

struts配置参数详解的相关文章

nginx配置参数详解

配置参数详解 user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目.根据硬件调整,通常等于CPU数量或者2倍于CPU. error_log  logs/error.log;  error_log  logs/error.log  notice;  error_log  logs/error.log  info;  错误日志:存放路径. pid logs/nginx.pid; pid(进程标识符):存放路径

eAccelerator 配置参数详解

eAccelerator 配置参数详解 eaccelerator.shm_size="32" eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,16,32,64,128都是可以的. eaccelerator.cache_dir="/home/php/tmp" 这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先

jquery的uploadify插件多文件上传配置参数详解

最近做了个多文件上传,需要限制上传文件类型的例子.以前没做过找了一些资料,下次有用.同时也给大家做参考. uploader: uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. script: 后台处理程序的相对路径 .默认值:uploadify.php checkScript:用来判断上传选择的文 件在服务器是否存在的后台处理程序的相对路径 fileDataName:设置一个名字,在服务器处理

zookeeper的配置参数详解(zoo.cfg)

配置参数详解(主要是%ZOOKEEPER_HOME%/conf/zoo.cfg文件) 参数名 说明 clientPort 客户端连接server的端口,即对外服务端口,一般设置为2181吧. dataDir 存储快照文件snapshot的目录.默认情况下,事务日志也会存储在这里.建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能. tickTime ZK中的一个时间单元.ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的.例如,session的最小超时时间是2*tic

Mysql 配置参数详解以及优化配置

mysql有以下几种日志: 错误日志:   log-err 查询日志:   log 慢查询日志:  log-slow-queries 更新日志:   log-update 二进制日志: log-bin 要把日志生成在 /var/log 目录下(是系统日志存放的地方,只有 root 账号有写权限),需要 MySQL进程对这个目录有读写权限,一般是不这么做的,也考虑到安全问题,包括 MySQL 本身的数据安全,因为对 MySQL 的所有操作,都会记录到常规查询日志.MySQL的日志就不要用 /var

reids配置参数详解

转自:http://www.jb51.net/article/60627.htm reids配置参数详解 #daemonize no  默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize yes #  当 redis 在后台运行的时候, Redis 默认会把 pid 文件放在 /var/run/redis.pid ,你可以配置到其他地址. #  当运行多个 redis 服务时,需要指定不同的 pid 文件和端口 pidfile /var/

MHA实现mariadb的高可用的详细步骤及配置参数详解

MHA实现mariadb的高可用的详细步骤及配置参数详解 A. 实验环境说明 a) 4台centos7主机 b) 角色说明: a. MHA:192.168.36.35 b. Master_mariadb:192.168.36.121 c. Slave_mariadb:192.168.36.120 d. Slave_mariadb:192.168.36.27 B. 安装程序包 a) mariadb上安装: mariadb-server 版本:5.5.60 mha4mysql-node -0.56-

samba 配置参数详解

samba 配置参数详解: 一.全局配置参数  workgroup = WORKGROUP说明:设定 Samba Server 所要加入的工作组或者域. server string = Samba Server Version %v说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填.宏%v表示显示Samba的版本号. netbios name = smbserver说明:设置Samba Server的NetBIOS名称.如果不填,则默认会使用该服务器的DNS名称的第一部分

Nginx主配置参数详解,Nginx配置网站

1.Niginx主配置文件参数详解 a.Linux中安装nginx.博文地址为:http://www.cnblogs.com/cindy-cindy/p/6847499.html b.当Nginx安装完毕后,会有相应的安装目录,安装目录里的nginx.confg为nginx的主配置文件,nginx主配置文件分为4部分,main(全局配置).server(主机配置).upstream(负载均衡服务器设置)以及location(URL匹配特定位置的设置),这四者的关系是:server继承main,l