springmvc 动态设置数据库,国际化内容的显示
来源:互联网 发布:b2b网络平台建设方案 编辑:程序博客网 时间:2024/06/05 12:02
国际化配置都是针对静态内容的变换,如果想要数据库的内容也要多语言显示,那可以设置多个数据库,每个数据库存一种语言的内容,显示时只要连接不同的数据库就可以进行多语言的切换显示。上一篇文章介绍了静态内容的国际化显示,本文在上一篇(http://blog.csdn.net/u011489887/article/details/77498775)的基础上进行扩展。
废话不多说直接上干货。
1 jdbc.properties文件内容
mysql.jdbc.driver_class=com.mysql.jdbc.Drivermysql.jdbc.connection.url=jdbc:mysql://localhost:3306/my_db?useUnicode=true&characterEncoding=utf8mysql.jdbc.connection.username=yangmysql.jdbc.connection.password=123456mysql.jdbc.driver_class-en=com.mysql.jdbc.Drivermysql.jdbc.connection.url-en=jdbc:mysql://localhost:3306/my_com?useUnicode=true&characterEncoding=utf8mysql.jdbc.connection.username-en=yangmysql.jdbc.connection.password-en=1234562.applicationContext.xml文件配置
<bean id="config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!-- 数据库1 --> <property name="driverClassName" value="${mysql.jdbc.driver_class}"/> <property name="url" value="${mysql.jdbc.connection.url}"/> <property name="username" value="${mysql.jdbc.connection.username}"/> <property name="password" value="${mysql.jdbc.connection.password}"/> </bean> <bean id="dataSource-en" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!-- 数据库2 --> <property name="driverClassName" value="${mysql.jdbc.driver_class-en}"/> <property name="url" value="${mysql.jdbc.connection.url-en}"/> <property name="username" value="${mysql.jdbc.connection.username-en}"/> <property name="password" value="${mysql.jdbc.connection.password-en}"/> </bean> <bean name="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <constructor-arg> <ref bean= "ds"/> </constructor-arg> </bean><bean id="ds" class="dynamicsource.DynamicDataSource"><property name="targetDataSources"> <!-- 动态配置数据库--><map key-type="java.lang.String"> <entry key="zh" value-ref="dataSource" /><entry key="en" value-ref="dataSource-en" /></map></property><property name="defaultTargetDataSource" ref="dataSource" /></bean>3.实现动态配置数据库的DynamicDataSource.java类
public class DynamicDataSource extends AbstractRoutingDataSource { private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); /** * * @return the currentLookupKey */ public static String getCurrentLookupKey() { return (String) contextHolder.get(); } /** * * the currentLookupKey to set */ public static void setCurrentLookupKey(String currentLookupKey) { contextHolder.set(currentLookupKey); } /* * (non-Javadoc) * * @see * org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource# * determineCurrentLookupKey() */ @Override protected Object determineCurrentLookupKey() { return getCurrentLookupKey(); } }4.设置一个拦截器在请求要显示的内容前设置数据库源,关键代码如下
Locale locale = RequestContextUtils.getLocaleResolver(request) .resolveLocale(request); //得到当前显示资源文件的名字
DynamicDataSource.setCurrentLookupKey(locale.getLanguage()); //设置数据库源
阅读全文
0 0
- springmvc 动态设置数据库,国际化内容的显示
- SpringMVC国际化设置
- springmvc国际化设置
- 动态设置div,标题栏固定显示,内容动态适应
- springmvc国际化的实现
- springmvc国际化 基于请求的国际化配置
- ul li datalist控件导航栏动态绑定数据库,并且显示相应的内容
- springMVC基于Session实现动态国际化
- SpringMVC之国际化资源显示错误信息
- 动态切换EditText内容的显示
- TextView动态改变显示的内容
- springMVC 动态显示图片
- 通过sql语句动态显示数据库内容到jtable
- 修复Bug,刷新无法动态显示数据库内容
- 动态数据的国际化
- 动态数据的国际化
- 根据文本框的内容,动态设置控件
- 设置webview突出显示的内容
- 淘汰赛制(NOI导刊2010提高 01)
- 动态规划经典题:给出两个字符串s1和s2,返回其中最大的公共子串
- mysql导入数据load data infile用法
- 每日积累(一四)--索引的优缺点
- Xml的pull解析
- springmvc 动态设置数据库,国际化内容的显示
- The SoX of Silence
- 在线就能用!10个帮你修图+剪辑视频+PPT制作的网站
- eoj 3330 沉陷过往的幻灭
- Android进阶#(8/12)让不断升级的系统更好管理——Git 版本控制_原理+配置
- AlexNet
- 方法通过异常与返回值达到双类型返回值效果
- Linux下调整/tmp目录大小
- 【转】SQL中distinct的用法