Struts数据库连接与国际化实现详解

需积分: 9 2 下载量 57 浏览量 更新于2024-10-03 收藏 203KB DOC 举报
"Struts数据源连接和国际化是构建基于Struts框架的Web应用程序时的两个关键方面。本文档将详细介绍如何配置Struts与数据库的连接以及实现国际化功能。" Struts连接数据库 在Struts中,连接数据库通常依赖于DataSource,这是一种标准的Java EE接口,用于管理数据库连接。在`struts-config.xml`配置文件中,可以通过添加`<data-source>`子节点来定义DataSource。例如: ```xml <data-source key="UserDS" type="org.apache.commons.dbcp.BasicDataSource"> <set-property property="username" value="sa"/> <set-property property="password" value="chhj4485292"/> <set-property property="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <set-property property="url" value="jdbc:sqlserver://localhost:1433;databaseName=testTemp"/> </data-source> ``` 这段代码配置了一个名为`UserDS`的DataSource,指定用户名、密码、数据库驱动类和连接URL。为了使这个配置生效,需要在项目的类路径中包含`commons-pool-1.3.jar`、`commons-dbcp-1.2.1.jar`这两个Apache Commons库,以及对应数据库的驱动JAR包(如:`sqljdbc4.jar`对于SQL Server)。 在Action的子类中,可以通过以下方式获取到DataSource: ```java DataSource ds = getDataSource(request, "UserDS"); ``` 确保在获取DataSource时,所有属性名与配置文件中的属性名一致,比如驱动类名称应为`driverClassName`而非`driverClass`。 2. 国际化 国际化(i18n)是Web应用提供多语言支持的关键。在Struts中,可以通过以下步骤实现: 1. 创建资源文件:为每种语言创建一个`.properties`文件,如`messages_en.properties`(英语)和`messages_zh_CN.properties`(简体中文)。这些文件应包含键值对,其中键代表消息标识,值是该语言下的实际消息文本。 2. 配置`struts-config.xml`:在`<global-exceptions>`或`<global-messages>`节点下添加`<message-resources>`配置,指定资源文件的位置: ```xml <message-resources parameter="com.example.myapp.messages" /> ``` 这里`com.example.myapp.messages`是资源文件的完全限定类名。 3. 在ActionForm或JSP页面中使用:在ActionForm中,可以使用`ActionMessages`或`ActionErrors`对象获取和显示消息。在JSP页面上,可以使用`<fmt:message>`标签来显示本地化的消息: ```jsp <fmt:message key="hello.message" bundle="${resources}" /> ``` 其中,`hello.message`是资源文件中的键,`${resources}`是指向资源文件的引用。 4. 设置请求或session范围的Locale:在处理用户请求时,根据用户的首选语言设置`HttpServletRequest`的`getLocale()`方法返回的Locale对象。这将确保Struts使用正确的资源文件。 5. 测试:通过更改浏览器设置或手动设置请求参数,验证不同语言环境下消息显示的正确性。 通过上述步骤,Struts应用就能适应不同国家和地区的用户,提供定制的语言体验。在开发过程中,确保始终更新和维护资源文件,并对各种语言环境进行充分的测试,以确保国际化的质量和用户体验。