2010-12-02 10 views
1

私はseam/hibernateアプリケーションでカスタムクラスレベルバリデーターを実装しました。私のフォームには<s:validateAll>があります。このタグでは、クラスレベルの検証は呼び出されません。Seam/Hibernateのクラスレベル検証

関連問題: https://jira.jboss.org/browse/JBSEAM-1878

シーム/ JSF/RichFacesのを使用して、この検証を呼び出すために私のために最善の方法は何ですか?

答えて

1

validator属性を使用しましたか?あなたはこれを使用すると、休止状態のクラスレベルの検証によって何を意味するかそうでないかもしれないが、少なくともそれは例えば

に動作しますs:validateAllまたはs:validate

のいずれかと一緒にそれを使用する必要があります。

<h:inputText value="#{foo.bar}" validator="#{validator.checkFoo}" required="true"> 
    <s:validate/> 
</h:inputText> 

そしてバリ

@Name("validator") 
@Scope(ScopeType.EVENT) 
@BypassInterceptors 
public class Validator { 
    public void checkFoo(FacesContext context, UIComponent toValidate, Object value) { 
     //Do some check and if incorrect set this value 
     ((UIInput) toValidate).setValid(false); 
    } 
} 
関連する問題