SpringBoot项⽬中实现返回结果和枚举类的国际化
前⾔
什么是国际化呢?国际惯例,来时来⼀段官⽅介绍:
properties是什么文件国际化(internationalization)是设计和制造容易适应不同区域要求的产品的⼀种⽅式。
它要求从产品中抽离所有地域语⾔,国家/地区和⽂化相关的元素。
二郎神是什么职位换⾔之,应⽤程序的功能和代码设计考虑在不同地区运⾏的需要,其代码简化了不同本地版本的⽣产。
开发这样的程序的过程,就称为国际化。
在我们实际开发中,⼀个web应⽤可能要在多个地区使⽤,⾯对不同地区的不同语⾔,为了适应不同的⽤户,我们可以尝试在前端页⾯实现多语⾔的⽀持,那么同样对于后端返回的⼀些提⽰信息,异常信息等,我们后端也可以根据不同的语⾔环境来进⾏国际化处理,返回相应的信息。
开发⼯具
IDEA、Maven、SpringBoot2.0.5、Jdk1.8、google浏览器
ajax原理及步骤SpringBoot中的国际化
原理:
想要使应⽤⽀持国际化,⾸先需要知道⽤户的语⾔环境,即⽤户想要看到的语⾔,我们设想在⽤户每次请求时告诉服务器⾃⼰的语⾔环境,服务器收到请求后,根据不同的语⾔环境返回不同的信息来实现国际化。在spring应⽤中,⽤户的语⾔环境是通过区域解析器来识别的,⽽区域解析器有分为好⼏种(后⾯详细说),在我们不做配置修改时,spring使⽤AcceptHeaderLocaleResolver作为默认的区域解析器,它是根据HTTP请求 Header中的Accept-language的值来解析,当然区域解析器我们也可以⾃定义配置。
springboot默认就⽀持国际化。我们只需要只需要作相应的配置即可。
1.⾸先你需要⼀个springboot项⽬。IDEA中分分钟创建好⼀个项⽬。
2.在resources下定义国际化配置⽂件,注意名称必须以messages开始。(在springboot中,当我们不修改配置时默认去解析名称以message开始的properties⽂件)
messages.properties (默认环境,⽆法确定语⾔环境时,解析该⽂件中的相应信息)
messages_zh_CN.properties(中⽂语⾔环境时,解析该⽂件中的相应信息)
messages_en_US.properties(英⽂语⾔环境时,解析该⽂件中的相应信息)
在三个配置⽂件中分别以Key = Value形式存储如下三条信息,如下:
welcome = 这是⼀个⽀持国际化的项⽬。
welcome = 这是⼀个⽀持国际化的项⽬。
welcome = This is a project supporting internationalization.
3.创建thymeleaf页⾯
加⼊thymeleaf依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
在resources/templates⽬录下创建hello.html页⾯:
尝试在不同的语⾔环境下,通过#{welcome}获取信息
sliderworks
/**
* 描述:枚举类举例
*
* @author zhengql
* @date 2018/9/26 20:52
*/
public enum EnumSuccessOrError {
SUCCESS(0, "操作成功"),
ERROR(1, "操作失败");
/**
* 返回状态码
*/
private int statusCode;
/**
* 返回状态信息
*/
private String statusMsg;
EnumSuccessOrError(int statusCode, String statusMsg) {
this.statusCode = statusCode;
this.statusMsg = statusMsg;
}
/**
* @return the statusCode
*/
public int getStatusCode() {
return statusCode;
}
/**
* @return the statusMsg
*/
public String getStatusMsg() {
return statusMsg;excel表格小数点取整
}
}
如上,刚刚创建的枚举类是不⽀持国际化的,我们呢需要改造他,当调⽤getStatusMsg⽅法时根据语⾔环境返回相应的国际化字符串。可以从如下两个点着⼿:
shell编辑命令getStatusMsg⽅法改造
资源⽂件中添加不同语⾔环境对应的返回值
先在三个资源⽂件中加⼊不同环境的返回值:
messages.properties,messages_zh_CN.properties
SUCCESS = 操作成功
ERROR = 操作失败
messages_en_US.properties
SUCCESS=success
ERROR=error
改造后的枚举如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论