當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot 数据国际化
生活随笔
收集整理的這篇文章主要介紹了
Spring Boot 数据国际化
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
internationalization詳解
國際化(internationalization)是設(shè)計(jì)和制造容易適應(yīng)不同區(qū)域要求的產(chǎn)品的一種方式。它要求從產(chǎn)品中抽離所有地域語言,國家/地區(qū)和文化相關(guān)的元素。換言之,應(yīng)用程序的功能和代碼設(shè)計(jì)考慮在不同地區(qū)運(yùn)行的需要,其代碼簡化了不同本地版本的生產(chǎn)。開發(fā)這樣的程序的過程,就稱為國際化。數(shù)據(jù)國際化
** 從請求作用域獲取locale,然后查詢對應(yīng)的數(shù)據(jù)**
中文語言數(shù)據(jù)頁面:只有中文數(shù)據(jù)
英文語言數(shù)據(jù)頁面:只有英文數(shù)據(jù)
瀏覽器切換中文,英文
模型對象User
@Entity @Table(name = "t_user") public class User {@Id@GeneratedValueprivate Long id;private String name;private Integer age;private String locale;//通過此字段查詢對應(yīng)的數(shù)據(jù)初始化類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的事件監(jiān)聽器的處理機(jī)制:在啟動(dòng)服務(wù)器的時(shí)候,插入默認(rèn)數(shù)據(jù)*/ @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發(fā)出ajax請求獲取json數(shù)據(jù)@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));}如果感覺不錯(cuò)記得點(diǎn)贊喲!!!
總結(jié)
以上是生活随笔為你收集整理的Spring Boot 数据国际化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java使用自定义包
- 下一篇: jpa 自定义sql if_Spring