【问题标题】:how to pass web.xml parameters to annotations (hibernate validator )?如何将 web.xml 参数传递给注释(休眠验证器)?
【发布时间】:2015-03-18 22:04:20
【问题描述】:
我想将 web.xml 上的上下文参数传递给 Java Bean 中的休眠注解,例如:
web.xml:
<context-param>
<param-name>limit</param-name>
<param-value>5</param-value>
</context-param>
Java Bean:
@Length(min=0, max=limit )
private String text;
这可能吗?
【问题讨论】:
标签:
jakarta-ee
hibernate-validator
【解决方案1】:
简短的回答是这是不可能的。约束注解是静态的,不能动态改变。
在最好的情况下,您可以尝试编写自定义约束。您仍然不能在约束中使用变量,但在ConstraintValidator 实现中,您可以通过注入或ThreadLocal 访问一些动态状态。当然,现在不可能再通过查看域模型来推迟确切的约束。
如果您需要根据模型在哪个应用程序中使用来更改约束,我想我更愿意使用 Bean Validation 的 XML 配置。