gpt4 book ai didi

java - JSR-303 将语言环境注入(inject)自定义 validator

转载 作者:行者123 更新时间:2023-11-30 06:33:47 26 4
gpt4 key购买 nike

我正在使用 Spring 3,我的 applicationContext.xml 中有以下配置:

  <bean id="validationMessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
p:basename="classpath:messages/validation_messages" p:defaultEncoding="UTF-8" p:cacheSeconds="3" />

<bean id="globalValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="validationMessageSource">
<ref bean="validationMessageSource" />
</property>
</bean>

一切都适用于语言环境等。

但是,我想知道是否可以将语言环境注入(inject)到我构建的自定义 validator 中。我创建了一个 @CheckZip 注释来验证邮政编码。但是由于邮政编码在不同的国家有不同的格式,我很好奇我是否可以将当前的语言环境输入 validator 。

最佳答案

不是通过注入(inject),而是静态 LocaleContextHolder可以在这里提供帮助:

LocaleContextHolder.setLocale(locale); // set locale for your request or based on user settings e.g. inside custom interceptor

LocaleContextHolder.getLocale(); // get locale inside your validator

但我不确定您为什么需要明确的区域设置,因为有一个应该已经可以工作的 LocaleChangeInterceptor:

<!-- Declare the Interceptor -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
p:paramName="locale" />
</mvc:interceptors>

<!-- Declare the Resolver -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

关于java - JSR-303 将语言环境注入(inject)自定义 validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7688500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com