商城网站建设哪个比较好,wordpress 分类目录 路径,个人养老保险查询,科技公司 网站模板internationalization详解 国际化#xff08;internationalization#xff09;是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言#xff0c;国家/地区和文化相关的元素。换言之#xff0c;应用程序的功能和代码设计考虑在不同地区运行的…internationalization详解 国际化internationalization是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言国家/地区和文化相关的元素。换言之应用程序的功能和代码设计考虑在不同地区运行的需要其代码简化了不同本地版本的生产。开发这样的程序的过程就称为国际化。数据国际化
** 从请求作用域获取locale然后查询对应的数据**
中文语言数据页面只有中文数据
英文语言数据页面只有英文数据 浏览器切换中文英文
模型对象User
Entity
Table(name t_user)
public class User {IdGeneratedValueprivate 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 ApplicationListenerContextRefreshedEvent {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 MapString, 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);// 拼接查询条件SpecificationUser specification new SpecificationUser() {Overridepublic Predicate toPredicate(RootUser root, CriteriaQuery? query, CriteriaBuilder cb) {ListPredicate list new ArrayListPredicate();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));}如果感觉不错记得点赞哟