Struts配置文件中的元素

<struts-config>元素

<struts-config>元素是Struts配置文件的根元素,和它对应的配置类为org.apache.strtus.config.ModuleConfig类.<struts-config>元素有8个子元素,它的DTD定义如下:
<!ELEMENT struts-config(data-sources?,form-beans?,global-exceptions?,global-forwards?,action-mappings?,controller?,message-resources*,plug-in*)
在Struts配置文件中,必须按照以上DTD指定的先后顺序来配置<struts-config>元素的各个子元素,如果颠倒了这些元素在配置文件中的顺序,在Struts应用启动时会生成XML解析错误.

<data-sources>元素

<data-sources>元素用来配置应用所需要的数据源.数据源负责建立和特定数据库的连接,许多数据源采用连接池机制实现,以便提高数据库访问性能.Java语言提供了内在的数据源组件,很多数据库厂商也提供了数据源的实现.下图表现了Web应用通过数据源访问数据库的过程.

<data-sources>元素包含零个,一个或多个<data-source>子元素.<data-source>元素用于配置特定的数据源,它可以包含多个<set-property>子元素.<set-property>元素用于设置数据源的各种属性.下面的代码演示了如何在Struts配置文件中配置数据源:
<data-source>
<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 properyt="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/addressbooksample"/>
</data-source>
</data-sources>
以上代码使用<data-source>元素配置了和MySQL数据库的连接.<data-source>元素的type属性用来指定数据源的实现类.以上代码使用的是Apache软件组织提供的DBCP数据源.开发者应该根据实际应用的需要来选用合适的数据源实现.下表列出了几种比较流行的数据源实现
---名称---------供应商-----------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)方法,它用于获取数据源对象的引用.以下程序代码演示了如何在Action类中访问数据源:
public ActionForward execute(SctionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws Exception
{
javax.sql.DataSource dataSource;
java.sql.Connection myConnection;
try{
dataSource=getDataSource(request);
myConnection=dataSource.getConnection();
//do what you wish with myConnection
}catch(SQLException sqle){
getServlet().log("Connection.process",sqle);
}finally{
//enclose this in a finally block to make
//sure the connection is closed
try{
myConnection.close();
}catch(SQLException e){
getServlet().log("Connection.close",e);
}
}
}
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过该值来标识特定的数据源.例如:
<data-sources>
<data-source key="A" type="org.apache.commons.dbcp.BasicDataSource">
...properties as before...
</data-source>
<data-source key="B" type="org.apache.commons.dbcp.BasicDataSource">
...properties as before...
</data-source>
...
</data-sources>
在Action类中通过以下方式访问特定的数据源:
dataSourceA=getDataSource(request,"A");
dataSourceB=getDataSource(request,"B");
  贴子相关图片:
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章