在渲染视图的xml文件中,配置一个i18nBean

    实现两个接口:

    SessionLocaleResolver --> 加载资源主题

    ReloadableResourceBundleMessageSource --> 加载文件

@Controller

package com.oukele.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.LocaleResolver; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.rmi.registry.LocateRegistry;
import java.util.Locale; @Controller
public class xxxController { //将 i18n 注入容器中
@Autowired
private LocaleResolver localeResolver; /**
* 请求url:/cl
* 请求方式:GET
* 返回结果:得到一个视图
* */
@RequestMapping(path = "/cl",method = RequestMethod.GET)
public String index(){
return "index";
} /**
* 请求url:/cl/xxx
* 请求方式:GET
* 根据url带回来的参数,改变要调用语言资源文件
* 重定向
* */
@GetMapping("/cl/{loc}")
public String changeLocale(@PathVariable("loc") String localseStr, HttpServletRequest request, HttpServletResponse response){
Locale locale =new Locale(localseStr);
localeResolver.setLocale(request,response,locale);
return "redirect:/cl";
} } 

页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
<title><spring:message code="title" /></title>
</head>
<body> <div>
<spring:message code="page.cl" />
<br>
<a href="/cl/zh">中文</a>
<a href="/cl/en">English.</a>
<a href="/cl/jp">日本</a>
<br><br>
</div> <div style="border: 1px solid red;margin: auto;height: 300px;text-align: center">
<spring:message code="context.cl" />
</div> </body>
</html> 

messages中的语言资源包。

语言资源包:

xxxx_en.properties:

title=This is a test
user.id=Emp Id
user.name=Emp Name
user.sal=Emp Salary
context.cl=When spring sleeps, birds are heard everywhere.At night comes rain and wind.
page.cl=Click to change current language:

xxxx_zh.properties:

title=这是一个测试
user.id=用户编号
user.name=用户姓名
user.sal=用户工资
context.cl=春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。
page.cl=点击切换语言:

xxxx_jp.properties:

title=人気
user.id=ioujojfasojf
user.name=aaaaaaaaaaaaaaa.
user.sal=oh, noooooh.
context.cl=春の眠りがついていて,あちこちで鳴く鳥を聞いている。夜は風雨の音がして,花がどれくらい落ちたかを知る。
page.cl=切り替え言語

结果:

一个菜鸟的笔记,路过的大佬见谅哈。

Spring mvc i18n国际化的简单demo的更多相关文章

  1. Spring MVC 学习 之 - 配置简单demo

    1.环境参数: Maven:3.1.1 JDK  :1.6 2.项目文件结构图: 3.各文件配置: 3.1. pom.xml <project xmlns="http://maven. ...

  2. 使用Spring MVC 实现 国际化

    使用Spring MVC 实现 国际化     博客分类: Spring   1. 版本 Spring 3.1   2. 配置 LocaleResolver     LocaleResolver 是指 ...

  3. Java Web 学习(7) —— Spring MVC 之国际化

    Spring MVC 之国际化 i18n 与 l10n internationalization:国际化,以 i 开头,以 n 结尾,中间 18 个字母,简称 i18n. localization:本 ...

  4. spring mvc底层(DispacherServlet)的简单实现

    使用过spring mvc的小伙伴都知道,mvc在使用的时候,我们只需要在controller上注解上@controller跟@requestMapping(“URL”),当我们访问对应的路径的时候, ...

  5. 1.【转】spring MVC入门示例(hello world demo)

    1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...

  6. 【转】spring MVC入门示例(hello world demo)

    部分内容来自网络:<第二章 Spring MVC入门 —— 跟开涛学SpringMVC > 1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web M ...

  7. Eclipse中Spring Boot响应jsp的简单demo

    首先在Eclipse里新建一个maven工程,这里的打包类型和父包如果后续再去pom中添加也可以 此时的工程路径是这样的 接下来去到pom中添加相关的依赖,如果有报错maven update一下即可 ...

  8. Spring MVC(八)--控制器接受简单列表参数

    有些场景下需要向后台传递一个数组,比如批量删除传多个ID的情况,可以使用数组传递,数组中的ID元素为简单类型,即基本类型. 现在我的测试场景是:要从数据库中查询minId<id<maxId ...

  9. Spring MVC 文件上传简单示例(form、ajax方式 )

    1.Form Upload SpringMVC 中,文件的上传是通过 MultipartResolver 实现的,所以要实现上传,只要注册相应的 MultipartResolver 即可. Multi ...

随机推荐

  1. 系统 --- Linux系统环境搭建

    Linux命令介绍 软硬链接 作用:建立连接文件,linux下的连接文件类似于windows下的快捷方式 分类: 软链接:软链接不占用磁盘空间,源文件删除则软链接失效 硬链接:硬链接只能链接不同文件, ...

  2. 应用安全 - PHP - CMS - EmpireCMS - 漏洞 - 汇总

    2006 Empire CMS <= 3.7 (checklevel.php) Remote File Include Vulnerability Empire CMS Checklevel.P ...

  3. 【Linux开发】linux设备驱动归纳总结(七):2.内核定时器

    linux设备驱动归纳总结(七):2.内核定时器 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  4. netcore发布的坑

    当我选择目标运行时为Linux-64时,生成的接口为第二图, 而当我选择目标运行时为可移植或windows-64时,生成的接口则是正确的.和我写的代码,以及本地按F5启动调试的效果一致. 整个项目从v ...

  5. 【Spring 基础】通过注解注入Bean

    原课程:通过注解注入Bean 注入bean知识点思维导图 Spring 4.x推荐使用基于构造器的方式进行bean注入7.4.1 Dependency Injection spring为什么推荐使用构 ...

  6. springboot整合springdatajpa时jar冲突

    1.springboot整合springdatajpa测试时报No bean named 'entityManagerFactory' available错误 2.运行springboot主程序时报以 ...

  7. 初入JavaWeb(半成品)

    2019-10-21 20:51:03 初次进行Javaweb的开发. 要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示 ...

  8. python-day40(正式学习)

    目录 线程队列 1 2 3 线程定时器 进程池和线程池 线程队列 1 import queue q=queue.Queue() q.put('123') q.put('456') q.put('789 ...

  9. YOLOv3:Demo needs OpenCV for webcam images

    Compiling With CUDA And OpenCV: change the Makefile in the base directory to read: GPU=1 OPENCV=1 ma ...

  10. 彻底了解websocket原理

    一.websocket与http WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP有 1 ...