当前位置: 首页 > news >正文

SpringMVC基于注解使用:国际化

01-国际化介绍

首先在bootstrap下载个页面

下载后把登录页面的代码粘上去

然后再登录页面代码上有些超链接需要再spring-mvc.xml里面配置下,登录页面才能正常显示

配置静态资源

国际化-根据浏览器语言国际化

现在是中文的情况,要改为英文

1.配置下属性资源文件

2.配置先springmvc

3.在jsp上调用显示

创建属性资源文件,需要保证和要国际化的文件名字一致

你想翻译几种语言就加几个国家

然后点击login再点击Resource Bundle,然后点击加号,创建文件

如果要翻译登录如下图写法

然后再spring-mvc配置文件中配置国际化属性资源文件

要调用配置好的资源文件实现翻译的话,需要先配置一个spring标签库里的一个taglib如下面第二行

然后再想翻译的标签上调用即可用<spring:message code=""></spring:message>

然后访问此地址

在浏览器切换语音为英语在重启下浏览器刷新下页面就能把中文翻译成英文了

总结根据浏览器语言国际化实现流程

国际化-超链接切换国际化

现在spring-mvc中配置SessionLocaleResolver

然后再登录页面上创建两个链接用来切换中文和英文

然后常见此方法就能实现中英文转换了,由于我们的语言格式是en_US,en_CN,所以language是en,coutry为US或者CN,@pathVariable作用

@PathVariable 映射 URL 绑定的占位符
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过

@PathVariable(“xxx”) 绑定到操作方法的入参中。

解释来自于@PathVariable注解的用法和作用(Demo详解)-CSDN博客

由于我们在spring-mvc.xml配置了SessionLocaleResolver,所以我们可以用自动注入的方式调用

首先配置spring-mvc.xml文件配置LocaleChangeInterceptor

然后在login.jsp中配置超链接,就完事了

第一种和第二种方法的区别在于,第一种方式,通过下图方法实现,第二种方法springmvc自带方法不用调用方法,直接就能用两个方法地址栏不同

第二种方法必须按下图拦截器那个超链接方式配置要有 ?=locale

国际化类型转换和验证失败的信息在表单上

首先导入依赖

创建User类用@NotEmpty,@Email,@NotEmpty注解

创建方法用来检验数据是否正确,bindingResult在实体类校验信息返回结果绑定。messageSource用来在点击登录按钮时显示输出错误信息如邮箱号和密码的里面的参数如下

*          String code 资源文件中的key
*          args   文本中的参数, 可以用占位符的方式在资源文件文本中设置参数占位符:{0} 方式
*          locale 当前本地化语言

然后配置form的检验库用来实现错误信息显示到页面上的

modelAttribute传的是javabean对象,此对象要在访问页面前添加可以用@RequestMapping也可以用@GetMappiing

<form:errors path是传入要在页面上显示的错误信息的属性

${errMsg}是点击提交按钮后如果信息错误在页面上输入的错误信息

怎么实现错误信息中英文转换呢需要再配置文件中一下面对应注解.对象.属性来配置

相关文章:

  • 点云数据常见的坐标系有哪些,如何进行转换?
  • 红旗EQM换电连接器哪家生产
  • Vue3 父子传参 简单易懂
  • 视频处理基础之gradio框架实现
  • Transformer从零详细解读
  • 5G前传-介绍
  • IBM Storwize V7000存储控制器故障节点报错574
  • Redis典型应用 - 分布式锁
  • SVN下载安装使用方法
  • 【大数据】深入浅出Hadoop,干货满满
  • 深入解析 Dubbo 的 attachments 机制及其应用场景
  • 【Kubernetes知识点问答题】健康检查
  • 代码随想录打卡Day25
  • 远心镜头选型公式
  • windows C++-并行编程-将使用缩减变量的 OpenMP 循环转换为使用并发运行时
  • JavaScript-如何实现克隆(clone)函数
  • java 多线程基础, 我觉得还是有必要看看的
  • Sass Day-01
  • Selenium实战教程系列(二)---元素定位
  • 力扣(LeetCode)22
  • 使用 Docker 部署 Spring Boot项目
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • Nginx实现动静分离
  • ​linux启动进程的方式
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ### RabbitMQ五种工作模式:
  • $jQuery 重写Alert样式方法
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原)本想说脏话,奈何已放下
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core 项目指定SDK版本
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net web项目 调用webService
  • .net 发送邮件
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET导入Excel数据
  • .net后端程序发布到nignx上,通过nginx访问
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET正则基础之——正则委托
  • /proc/vmstat 详解
  • :如何用SQL脚本保存存储过程返回的结果集
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @Documented注解的作用
  • @PreAuthorize与@Secured注解的区别是什么?
  • [ JavaScript ] JSON方法
  • [20190113]四校联考
  • [AIGC] Java 和 Kotlin 的区别
  • [Android] Android ActivityManager
  • [Angular 基础] - 表单:响应式表单