Hibernate验证@Pattern

时间:2012-12-01 02:52:07

标签: hibernate validation jsf richfaces

我在org.hibernate.validator.Pattern托管bean中使用jsf注释来验证<h:inputText>组件。

@Pattern(regex="\\W+")
public String getText() {
  return text;
}

我的问题是,是否有办法从方法或EL中获取正则表达式,并对其进行硬编码 例如

@Pattern(regex = getRexEx())

OR

@Pattern(regex = "#{bean.regEx}")

我用Google搜索,发现regEx应该是一个常量。但是,可以有另一种方法来实现这一目标。

1 个答案:

答案 0 :(得分:4)

注释的参数需要是编译时常量,所以不,不可能将运行时表达式指定为@Pattern的参数。也不可能将EL表达式作为参数传递并让它做任何事情,因为嗯,这根本不是模式验证器的编写方式。

可以做的是定义一个自己的验证器类,它采用EL表达式的形式并根据它验证bean属性。祝你上下文管理好运!这不是一项简单的任务。