カップルのinputTextと一緒に、私がページ上に持っている必須コンポーネントの1つがp:fileUploadです。だから私は、提出をクリックすると、<p:message>
はrequire=true
を持つコンポーネント上に表示されますが、ユーザーが選択/pの検証方法fileUpload
を入力していなかった私は、赤いボックスRequired
を望んも次のアップロードコンポーネントに表示されます。ここで私が試したことがあります。
1。 p:fileUploadにrequired="true"
と設定すると、実際には何も起こりません(これがバグかどうかはわかりません)。
2。私は以下の私が提出クリックしたときに何が本当に私は、validateFileUpload
が全く呼び出されませんでしたアップロードを通過していない場合でも、起こりません
public void validateFileUpload(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
if(value == null){
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("Error");
message.setDetail("Required");
throw new ValidatorException(message);
}
}
私のバリデータソース
で、p:fileUpload
で
validator
を入れて(わからないこれはバグがある場合)
3。私がsubmitをクリックすると、他のすべてが渡され、私のアクションメソッドに入ると、ファイルがnullかどうかを確認してからFacesMessageを返し、p:growlがそれを受け取るようにします。しかし、私はそれがユーザーに複数の検証レイヤーの感覚を与えるので、そのようには好きではありません。
pのより良い検証を行う方法はありますか?fileUpload?
わからないが、私の[最近の質問]の多分1(http://stackoverflow.com/q/9415 059/620338)が関連しています。 –
@MattHandy:あなたの質問は以前見たことがあります。 'validator'属性と' f:validator'の両方を試しましたが、何も起こりません。 –
問題が報告され、修正されました:http://code.google.com/p/primefaces/issues/detail?id=3680 –