如何在 Facelets 中启用 JSR-303 bean 验证?
我正在使用 spring CDI 和自定义的“View”范围。 (参见这个< /a> 关于它是如何工作的。)
视图 bean 使用 JSR-303 验证规则进行注释,如下所示:
@Scope("view")
public class MyBean implements Serializable {
String message;
@NotNull
@Size(min = 10)
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void action1() {
...
}
}
和用户表单:
...
<h:form id="form1">
<h:inputText name="message" value="${myBean.message}" />
<p:commandButton value="Update" actionListener="${myBean.action1}" />
</h:form>
但是,验证不起作用。我是否在faces-config.xml 中遗漏了某些内容?我猜应该涉及到一些代理类,这些代理类可能是由 AspectJ weaver 等生成的。正确的?
I'm using spring CDI and a customized "View" scope. (See this about how it works.)
The view bean is annotated with JSR-303 validation rules as following:
@Scope("view")
public class MyBean implements Serializable {
String message;
@NotNull
@Size(min = 10)
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void action1() {
...
}
}
And the user form:
...
<h:form id="form1">
<h:inputText name="message" value="${myBean.message}" />
<p:commandButton value="Update" actionListener="${myBean.action1}" />
</h:form>
However, the validation doesn't work. Am I missing something in faces-config.xml
? I guess there should be some proxy classes involved in, which maybe generated by AspectJ weaver or so. Right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果将实现 jar 添加到类路径,则会自动启用 JSF 的 JSR 303 验证。
JSR 303 validation for JSF is auto enabled if you add implementation jar to classpath.