返回顶部
首页 > 资讯 > 精选 >SpringBoot Validation提示信息国际化如何配置
  • 131
分享到

SpringBoot Validation提示信息国际化如何配置

2023-07-05 05:07:00 131人浏览 泡泡鱼
摘要

这篇文章主要介绍“SpringBoot Validation提示信息国际化如何配置”,在日常操作中,相信很多人在springBoot Validation提示信息国际化如何配置问题上存在疑惑,小编查阅了各式资料,整理出简

这篇文章主要介绍“SpringBoot Validation提示信息国际化如何配置”,在日常操作中,相信很多人在springBoot Validation提示信息国际化如何配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot Validation提示信息国际化如何配置”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Spring Boot Validation支持jsR-380(aka. Bean Validation 2.0,part of Jakarta EE and JavaSE)注解,可通过验证注解的message属性设置验证错误提示信息,且每个验证注解都有默认的message配置,例如@NotBlank的message属性值设置如下图:

SpringBoot Validation提示信息国际化如何配置

默认的message = "{...}"的形式即指定国际化属性的名称,后续会根据语言环境替换为对应的值,而这些国际化属性的定义可参见hibernate-validator中的org.hibernate.validator.ValidationMessages.properties等一些列国际化属性定义:

SpringBoot Validation提示信息国际化如何配置

而我们在实际使用过程中,除了可以设置message="{propName}"的形式来读取国际化属性,亦可以直接设置值message="具体的提示信息",而不明确设置message则使用之前提到的org.hibernate.validator.ValidationMessages.properties中的默认配置。

SpringBoot Validation提示信息国际化如何配置

Spring Boot Validation起初其并不直接支持读取Spring Boot自身的国际化配置(通过spring.messages进行配置),而是需要在resources/ValidationMessages.properties中进行配置的国际化属性才会生效,而后续在Spring Boot 2.6+版本才支持Validation与Spring Boot自身的国际化配置相结合。

接下来结合Spring Boot 2.5和2.6版本分别介绍下Spring Boot Validation如何集成自定义国际化验证提示信息。

Spring Boot 2.5.x

在Spring Boot 2.5.x版本中,Spring Boot Validation默认只支持读取resources/ValidationMessages.properties系列文件的中的国际化属性,且中文需要进行ASCII转码才可正确显示

如下图:

SpringBoot Validation提示信息国际化如何配置

而就算Spring Boot应用亦声明了自身的国际化配置,但是Spring Boot Validation框架是读取不到的

例如:

Spring Boot应用自身的国际化配置如下图,但是在验证注解message属性设置i18n/messages.properties中的"{propName}"是读取不到的:

SpringBoot Validation提示信息国际化如何配置

而想要Spring Boot Validation框架和Spring Boot自身使用同样的国际化配置,则可通过如下方式进行配置:

import org.springframework.context.MessageSource;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.validation.Validator;import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;import org.springframework.WEB.servlet.config.annotation.WebmvcConfigurer;@Configurationpublic class WebValidationConfig implements WebMvcConfigurer {        private MessageSource messageSource;    public WebValidationConfig(MessageSource messageSource) {        //注入Spring Boot国际化消息源(需通过spring.messages明确指定)        this.messageSource = messageSource;    }        @Bean    @Override    public Validator getValidator() {        LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();        //仅兼容Spring Boot spring.messages设置的国际化文件和原hibernate-validator的国际化文件        //不支持resource/ValidationMessages.properties系列        bean.setValidationMessageSource(this.messageSource);        return bean;    }}

注:

  • 通过上述配置类进行配置后,

  • 仅兼容Spring Boot spring.messages设置的国际化文件和原hibernate-validator的国际化文件

  • 不再支持resource/ValidationMessages.properties系列

Spring Boot 2.6.x

翻了GitHub上Spring Boot框架的Release说明,发现其在2021-08-20发布的v2.6.0-M2中提到了支持使用自身国际化MessageSource解析验证提示信息,也就是说Spring Boot 2.6.x版本之后已支持验证注解message属性引用Spring Boot自身国际化配置。

SpringBoot Validation提示信息国际化如何配置

实际测试Spring Boot 2.6.x版本,验证注解message="{propName}"

  • 可以直接读取通过spring.messages设置的国际化配置中的属性(设置UTF-8编码后中文可无需ASCII转码),

  • 同时亦支持读取resources/ValidationMessages.properties中的配置(中文需ASCII转码),

  • 且依旧支持原hibernate-validator的国际化文件。

且读取优先级依次从上到下,即最上面的优先生效。

具体的配置及使用方式见下图:

SpringBoot Validation提示信息国际化如何配置

Spring Boot 2.6关于Spring Boot Validation与MessageSource的融合,具体实现细节可参见Release中提到的gitHub Pull Request #17530:

SpringBoot Validation提示信息国际化如何配置

到此,关于“SpringBoot Validation提示信息国际化如何配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: SpringBoot Validation提示信息国际化如何配置

本文链接: https://www.lsjlt.com/news/349831.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot Validation提示信息国际化如何配置
    这篇文章主要介绍“SpringBoot Validation提示信息国际化如何配置”,在日常操作中,相信很多人在SpringBoot Validation提示信息国际化如何配置问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-07-05
  • SpringBoot Validation提示信息国际化配置方式
    目录引言Spring Boot 2.5.xSpring Boot 2.6.x总结引言 之前介绍过Spring Boot Validation的使用及扩展 本文在此基础上重点讲解下Sp...
    99+
    2023-02-23
    SpringBoot Validation Validation提示信息 Validation国际化配置
  • springboot页面国际化如何配置
    这篇文章主要介绍了springboot页面国际化如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springboot页面国际化如何配置文章都会有所收获,下面我们一起来看看吧。方法如下引入依赖pom.xml...
    99+
    2023-06-29
  • Springboot Thymeleaf如何配置国际化页面
    本文小编为大家详细介绍“Springboot Thymeleaf如何配置国际化页面”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot Thymeleaf如何配置国际化页面”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-07-06
  • 如何配置Flex国际化
    这篇文章主要介绍了如何配置Flex国际化,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Flex国际化说明Flex从SDK4.0开始支持中文语言包(包括简体中文,繁体中文等16...
    99+
    2023-06-17
  • springboot页面国际化配置指南
    目录前言方法如下总结前言 前一段时间做了一个项目,需要解决中文、繁体、英文的国际化问题,所以本文将详细介绍springboot页面国际化配置的过程 方法如下 1.引入依赖pom.xm...
    99+
    2024-04-02
  • php.ini如何设置错误提示信息
    这篇“php.ini如何设置错误提示信息”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php.ini如何设置错误提示信息”文...
    99+
    2023-06-30
  • Springboot+AOP实现返回数据提示语国际化的示例代码
    前言 本篇内容: 提示语的国际化返回,自定义多语言。 本文使用aop方式,拦截接口返回的数据,进行转换。 正文   先看这次示例教学的项目 目录结构: &nbs...
    99+
    2024-04-02
  • 如何在springboot中实现页面的国际化
    确保这个修改是正确的(否则将会出现乱码) 创建i18n文件夹(就是国际化的意思),然后在此文件加下创login.properties login_zh_CN,properties文...
    99+
    2024-04-02
  • SpringBoot如何实现前后端分离国际化
    这篇“SpringBoot如何实现前后端分离国际化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot如何实现...
    99+
    2023-07-05
  • layui如何实现信息提示框
    这篇文章主要介绍了layui如何实现信息提示框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   第一步:引用两个文件   第二步:点击...
    99+
    2024-04-02
  • SpringBoot外部化如何配置
    这篇文章主要介绍了SpringBoot外部化如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot外部化如何配置文章都会有所收获,下面我们一起来看看吧。SpringBoot外部化配置(基于2...
    99+
    2023-07-05
  • 如何实现Linux系统个性化登录提示信息
    这篇文章主要介绍“如何实现Linux系统个性化登录提示信息”,在日常操作中,相信很多人在如何实现Linux系统个性化登录提示信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Linux系统个性化登录提...
    99+
    2023-06-13
  • vue如何动态添加store、路由和国际化配置方式
    这篇文章主要为大家展示了“vue如何动态添加store、路由和国际化配置方式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何动态添加store、路由和国际化配置方式”这篇文章吧。vue动...
    99+
    2023-06-29
  • 如何在Discuz中修改提示信息?
    标题:如何在Discuz中修改提示信息?具体代码示例解析 在Discuz是一套PHP开发的社区论坛程序,广泛应用于各种网站和论坛的建设中。在日常运行中,我们经常需要对提示信息进行修改以...
    99+
    2024-03-09
    提示 修改 discuz
  • layui如何实现表格初始化时加载提示信息
    这篇文章将为大家详细讲解有关layui如何实现表格初始化时加载提示信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。layui的表格在进行初始化时可以添加一个友好提示,增...
    99+
    2024-04-02
  • c语言如何看错误提示信息
    在C语言中,当编译器发现代码中的错误时,会给出相应的错误提示信息。以下是一些常见的错误提示信息及其含义:1. 错误类型:syntax...
    99+
    2023-08-19
    c语言
  • thinkphp不提示错误信息如何解决
    这篇文章主要介绍“thinkphp不提示错误信息如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp不提示错误信息如何解决”文章能帮助大家解决问题。thinkphp不提示错误信息的...
    99+
    2023-07-04
  • ubuntu如何查看网卡配置信息
    ubuntu查看网卡配置信息的方法:1、打开ubuntu终端;2、通过命令进行查看网卡配置信息。具体操作方法如下:使用快捷键【ctrl+alt+t】打开ubuntu终端。再通过以下命令查看网卡配置信息。ifconfig #查看网卡基本配置信...
    99+
    2024-04-02
  • win7如何查看电脑配置信息
    在Windows 7系统中,可以通过以下步骤来查看电脑配置信息:1. 打开“开始”菜单,点击“控制面板”。2. 在控制面板窗口中,选...
    99+
    2023-08-30
    win7
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作