2011-08-25 52 views
0

我正在使用Spring CDI和一个自定义的“查看”范围。 (见this它是如何工作的。)如何在Facelets中启用JSR-303 bean验证?

的视图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等产生的。对?

+0

您使用的是JSF 1.x还是2.x? –

+0

@ dar-whi:我的确在使用Facelets。我想这是JSF 2.x. –

+0

Facelets在JSF 2.x之前已经存在 - >问题仍然是一样的。 –

回答

2

如果您将实现jar添加到classpath,则自动启用JSR 303验证JSF。