在Struts应用启动时,会把Struts配置文件中的配置信息读入到内存中,并把他们放到config包中相关javaBean类的实例 中,org.apache.struts.config包中的每一个类都和Struts配置文件中特定的配置元素对应。例如:
data-source?,form-beans?,global-exception?,global- forwards?,actionmapping?,controller?,message-resources*,plug-in*)>
定义Struts配置文件,必须按照上面DTD规定的顺序进行配置,否则将报错。
<data-sources>元素用来配置应用所需要的数据源。
<data-sources>元素包含零个,一个或多个<data-source>子元素。
<data-source>元素用于配置特定的数据源,它可以包括多个
<set-property>元素用于设置数据源的各种属性。例如:
比较流行的数据源:
名称 |
供应商 |
URL |
Poolman |
开放源代码软件 |
http://sourceforge.net/projects/poolman |
Expresso |
Jcorporate |
http://www.jcorporate.com |
JDBC Pool |
开放源代码软件 |
http://www.bitmechanic.com/projects/jdbcpool |
DBCP |
Jakarta |
http://jakarta.apache.org/commons/index.html |
配置完数据源后,就可以在Action类中访问数据源。
在org.apache.struts.action.Action类中定义了getDataSource(HttpRequest)方法,可以用于获取数据源对象的引用。
例如:
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest
request,HttpServletResponse response) throws Exception{
javax.sql.DataSource dataSource;//定义数据源对象
java.sql.Connection myConnection;//定义联接对象
try{
dataSource=getDataSource(request);//从配置文件中读取数据源信息并进行配置
myConnection=dataSource.getConnection();//建立一个数据源连接实例
}
catch(SQLException sqle){
getServlet().log(“Connection.process”,sqle);
}
finally{
try{
myConnection.close();
}
catch(SQLException e){
getServlet().log(“Connection.close”,e);
}
}// end finally
}//end execute
在配置文件中声明多个数据源的方法:
可以通过为每一个数据源分配唯一的key值,通过该值来标识特定的数据源。例如:
属性 |
描述 |
className |
指定和 |
Name |
指定该ActionForm Bean的唯一标识符,整个Struts框架用标识符来引用这个Bean,该属性是必须的。 |
Type |
指定ActionForm类的完整名,该属性是必需的。(在配置type属性时,必须给出ActionForm类的完整类名,即包括类的包名。) |
该元素主要配置异常处理,它的exception子元素代表全局的异常配置。
该元素主要用来声明全局的转发关系,它具有以下四个属性:
描述从特定的请求路径到相应的Action类的映射。
2.5.1 attribute:设置和Action关联的ActionForm Bean在request和session范围内的key.
2.5.2 classsName:和action元素对应的配置元素,默认为:org.apache.struts.action.ActionMapping.
2.5.3 forward:转发的URL路径。
2.5.4 include:指定包含的URL路径。
2.5.5 name:指定和Action关联的Action FormBean的名字,该名字必须在Form-Bean定义过。
2.5.6 input:输入表单的URL路径,当表单验证失败时,将把请求转发到该URL。
2.5.7 path:指定访问Action的路径,以“/”开头,无扩展名。
2.5.8 parameter:指定Actgion的配置参数,在Action类的execute()方法中,可以调用ActionMapping对象的getParameter()方
法来读取该配置参数。
2.5.9 scope:指定ActionForm Bean的存在范围,可选取为request和session,默认为session。
2.5.10 type:指定Action类的完整类名
2.5.11 validate:指定是否要调用Action FormBean的validate方法,默认值为ture.
注:forward、include、type属性只能选中其中一项。