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&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
版权声明:本文标题:struts 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1699389338a346461.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论