在Hibernate + Spring中使用自定义验证消息

我在这里尝试了答案中的步骤:HibernateValidator,自定义ResourceBundleLocator和Spring

但是仍然只是{location.title.notEmpty}作为输出而不是消息。

dispatcher-servlet.xml

<bean name="validator"

class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">

<property name="validationMessageSource">

<ref bean="resourceBundleLocator"/>

</property>

</bean>

<bean name="resourceBundleLocator" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

<property name="basenames">

<list>

<value>/WEB-INF/validationMessages</value>

</list>

</property>

</bean>

/WEB-INF/validationMessages.properties:

location.title.notEmpty=My custom message

表格(上课地点)

@NotEmpty( message = "{location.title.notEmpty}" )

private String title;

这是怎么了

回答:

得到它了!:-)

我在我的计算机中添加了以下bean而不是上面提到的两个dispatcher-servlet.xml

  <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

<property name="basename" value="/WEB-INF/validationMessages" />

</bean>

然后,在我的validationMessages.properties中,使用以下语法:

NotEmpty.location.title=My custom Message

我猜这是原因:我使用了Hibernate验证注释(不是javax注释)

对于一般情况,消息文件的语法应类似于

[ConstraintName].[ClassName].[FieldName]=[Message]

希望这可以帮助其他人;-)

要从spring控制器访问消息,只需将其添加@Autowired private MessageSource

messageSource;为类字段并使用messageSource.getMessage方法即可。因为我只使用一种语言环境messageSource.getMessage("NotEmpty.location.title", null, null )

以上是 在Hibernate + Spring中使用自定义验证消息 的全部内容, 来源链接: utcz.com/qa/404910.html

回到顶部