Bean验证VS JSF验证

Ton*_*lba 15 jsf java-ee

当面对在JSF2应用程序中验证属性的问题时,有两种主要方法.

使用Annotation在ManagedBean上定义验证

@ManagedBean
public class MyBean {
    @Size(max=8)
    private String s;

    // Getters setters and other stuff.
}
Run Code Online (Sandbox Code Playgroud)

或在jsf页面上声明:

<h:inputText value="#{myBean.s}">
    <f:validateLength maximum="8"/>
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

碰巧我无法决定他们中的任何一个.第一个很好,因为它从jsf页面中删除了一些代码(这总是好的,因为这些页面根据定义并不友好)但是在查看jsf文件时更难以"一目了然"看到页面发生了什么.

您认为哪一个更清楚?更好?更好?

Dav*_*ers 16

我将在ManagedBean上进行验证,这将从模型视图Controller中的JSF VIEW中删除逻辑.并且应该让JSF负责显示模型.此外,在托管bean上具有此功能可确保在何处更新验证.这更干涩(不要重复自己).