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 数据国际化相关推荐

  1. Spring Boot 页面国际化

    internationalization详解 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的 ...

  2. Spring Boot数据校验

    数据校验是一个相当重要的环节,使用Spring Boot 进行数据校验. 添加校验依赖 全部依赖文件如下 <?xml version="1.0" encoding=" ...

  3. Spring boot实现国际化

    Spring boot国际化支持 当我们web项目涉及到国外部署或者国外用户使用时,需要展示不同语言信息,所以就需要国际化支持,下面将讲解Springboot国际化支持操作 1. 修改Springbo ...

  4. Spring Boot数据持久化之NamedParameterJdbcTemplate

    在Spring Boot项目中如果想使用NamedParameterJdbcTemplate,则需要在pom.xml文件中引入下述依赖: <dependency><groupId&g ...

  5. Spring Boot中通过Accept-Language头信息设置国际化内容

    目录 概念 演示 操作步骤 概念 使用Spring MVC编写国际化配置文件: 1. 编写国际化配置文件: 2. 使用ResourceBundleMessageSource管理国际化资源文件: 3. ...

  6. Spring Boot国际化支持

    文章目录 添加Maven支持 LocaleResolver LocaleChangeInterceptor 定义Message Sources Controller文件 html文件 运行应用程序 S ...

  7. Spring Boot国际化(i18n)

    国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不 ...

  8. spring boot 国际化

    国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不 ...

  9. Spring Boot Validation提示信息国际化配置

    引言 之前介绍过Spring Boot Validation的使用及扩展,可参见:<SpringBoot Validation> 本文在此基础上重点讲解下Spring Boot Valid ...

最新文章

  1. java判断两个int相等_Java 判断两个变量是否相等
  2. 华为软件测试工程师与普通软件工程师的区别
  3. 属性定义为 not null unique_土味情话为你倾尽天下,你共赏盛世繁华
  4. 在一台Mac上不同平台同时使用多个Git账号
  5. SAPMM模块配置目录
  6. elasticSearch入门到java操作api一套搞定
  7. 【Alljoyn】Alljoyn学习笔记五 AllJoyn开源技术基础概念解析
  8. unity, 颜色随高度渐变shader
  9. BZOJ3040:最短路——题解
  10. Android的MVC框架
  11. html5 心跳效果,css3实现心脏跳动
  12. Net设计模式实例之中介者模式(Mediator Pattern)
  13. 13个Excel动图小技巧,快速提高工作效率?建议收藏!
  14. 时间序列分析——python
  15. 【Active Learning - 09】主动学习策略研究及其在图像分类中的应用:研究背景与研究意义
  16. 关于javaBean运行后出现Name was not previously introduced as per JSP.5.3的解决方法
  17. 正版软件 |Windows 10 家庭版操作系统软件 终身授权
  18. easyx的使用(3)
  19. 软考网络工程师如何复习?
  20. MinGW下载并配置gcc/g++编译环境

热门文章

  1. 织梦自定义图片字段和缩略图一样_织梦图片集模型自定义图片字段调用
  2. Win7电脑快速获取超级管理员权限的方法
  3. 支援 Chrome 插件:微软 Chromium 内核 Edge 浏览器可以下载啦!
  4. eclipse中The JSP specification requires that an attribute name is preceded by whitespace
  5. 浏览器tab标签显示网站标志图标
  6. linux怎么休眠快捷键,在Deepin系统中创建右键休眠选项的方法
  7. excel 图片转url_最全总结 | 聊聊 Python 办公自动化之 Excel(下)
  8. 下如何查看mysql表单_Navicat 教程:如何进行表单查看
  9. @RequestBody 和 @RequestParam可以同时使用
  10. android 写字体投影,android-给字体设置投影