概述
在 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>
最后
以上就是大胆麦片为你收集整理的 Struts的配置详解的全部内容,希望文章能够帮你解决 Struts的配置详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复