Spring Boot 数据国际化
internationalization详解
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
数据国际化
** 从请求作用域获取locale,然后查询对应的数据**
中文语言数据页面:只有中文数据
英文语言数据页面:只有英文数据
浏览器切换中文,英文
模型对象User
@Entity
@Table(name = "t_user")
public class User {@Id@GeneratedValueprivate Long id;private String name;private Integer age;private String locale;//通过此字段查询对应的数据
初始化类InitApplicationListener
package com.jege.spring.boot.controller;import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;import com.jege.spring.boot.data.jpa.entity.User;
import com.jege.spring.boot.data.jpa.repository.UserRepository;/*** spring的事件监听器的处理机制:在启动服务器的时候,插入默认数据*/
@Component
public class InitApplicationListener implements ApplicationListener<ContextRefreshedEvent> {@Overridepublic void onApplicationEvent(ContextRefreshedEvent event) {ApplicationContext context = event.getApplicationContext();UserRepository userRepository = context.getBean("userRepository", UserRepository.class);User user;for (int i = 1; i < 21; i++) {if (i % 2 == 0) {user = new User("小明" + i, 25 + i);user.setLocale("zh");} else {user = new User("zh-ge" + i, 25 + i);user.setLocale("en");}userRepository.save(user);}}}
控制器类UserController
// 从user.jsp列表页面由easyui-datagrid发出ajax请求获取json数据@RequestMapping("/json")@ResponseBodypublic Map<String, Object> json(@RequestParam(name = "page", defaultValue = "1") int page,@RequestParam(name = "rows", defaultValue = "10") int rows, final String q, HttpServletRequest request) {// 按照id降序Sort sort = new Sort(Sort.Direction.DESC, "id");// 封装分页查询条件Pageable pageable = new PageRequest(page - 1, rows, sort);// 拼接查询条件Specification<User> specification = new Specification<User>() {@Overridepublic Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder cb) {List<Predicate> list = new ArrayList<Predicate>();if (!StringUtils.isEmpty(q)) {list.add(cb.like(root.get("name").as(String.class), "%" + q + "%"));}if (request.getLocale().toString().contains("en")) {list.add(cb.like(root.get("locale").as(String.class), "%en%"));} else {list.add(cb.like(root.get("locale").as(String.class), "%zh%"));}Predicate[] p = new Predicate[list.size()];return cb.and(list.toArray(p));}};return findEasyUIData(userRepository.findAll(specification, pageable));}
如果感觉不错记得点赞哟!!!
Spring Boot 数据国际化相关推荐
- Spring Boot 页面国际化
internationalization详解 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的 ...
- Spring Boot数据校验
数据校验是一个相当重要的环节,使用Spring Boot 进行数据校验. 添加校验依赖 全部依赖文件如下 <?xml version="1.0" encoding=" ...
- Spring boot实现国际化
Spring boot国际化支持 当我们web项目涉及到国外部署或者国外用户使用时,需要展示不同语言信息,所以就需要国际化支持,下面将讲解Springboot国际化支持操作 1. 修改Springbo ...
- Spring Boot数据持久化之NamedParameterJdbcTemplate
在Spring Boot项目中如果想使用NamedParameterJdbcTemplate,则需要在pom.xml文件中引入下述依赖: <dependency><groupId&g ...
- Spring Boot中通过Accept-Language头信息设置国际化内容
目录 概念 演示 操作步骤 概念 使用Spring MVC编写国际化配置文件: 1. 编写国际化配置文件: 2. 使用ResourceBundleMessageSource管理国际化资源文件: 3. ...
- Spring Boot国际化支持
文章目录 添加Maven支持 LocaleResolver LocaleChangeInterceptor 定义Message Sources Controller文件 html文件 运行应用程序 S ...
- Spring Boot国际化(i18n)
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不 ...
- spring boot 国际化
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不 ...
- Spring Boot Validation提示信息国际化配置
引言 之前介绍过Spring Boot Validation的使用及扩展,可参见:<SpringBoot Validation> 本文在此基础上重点讲解下Spring Boot Valid ...
最新文章
- java判断两个int相等_Java 判断两个变量是否相等
- 华为软件测试工程师与普通软件工程师的区别
- 属性定义为 not null unique_土味情话为你倾尽天下,你共赏盛世繁华
- 在一台Mac上不同平台同时使用多个Git账号
- SAPMM模块配置目录
- elasticSearch入门到java操作api一套搞定
- 【Alljoyn】Alljoyn学习笔记五 AllJoyn开源技术基础概念解析
- unity, 颜色随高度渐变shader
- BZOJ3040:最短路——题解
- Android的MVC框架
- html5 心跳效果,css3实现心脏跳动
- Net设计模式实例之中介者模式(Mediator Pattern)
- 13个Excel动图小技巧,快速提高工作效率?建议收藏!
- 时间序列分析——python
- 【Active Learning - 09】主动学习策略研究及其在图像分类中的应用:研究背景与研究意义
- 关于javaBean运行后出现Name was not previously introduced as per JSP.5.3的解决方法
- 正版软件 |Windows 10 家庭版操作系统软件 终身授权
- easyx的使用(3)
- 软考网络工程师如何复习?
- MinGW下载并配置gcc/g++编译环境
热门文章
- 织梦自定义图片字段和缩略图一样_织梦图片集模型自定义图片字段调用
- Win7电脑快速获取超级管理员权限的方法
- 支援 Chrome 插件:微软 Chromium 内核 Edge 浏览器可以下载啦!
- eclipse中The JSP specification requires that an attribute name is preceded by whitespace
- 浏览器tab标签显示网站标志图标
- linux怎么休眠快捷键,在Deepin系统中创建右键休眠选项的方法
- excel 图片转url_最全总结 | 聊聊 Python 办公自动化之 Excel(下)
- 下如何查看mysql表单_Navicat 教程:如何进行表单查看
- @RequestBody 和 @RequestParam可以同时使用
- android 写字体投影,android-给字体设置投影