これをよりよく理解するためにあなたの助けが必要です。これは私の場合です。フォームの入力コントロールごとにカスタムバリデーターがあります。したがって、検証エラーが発生した場合は、対応するFacesMessageをvalidateメソッドに追加します。私の理解では、検証エラーがある場合、またはカスタムバリデーターのvalidateメソッドにFacesMessagesが追加されている場合、INVOKE APPLICATIONフェーズをスキップし、RENDERRESPONSEPHASEを直接呼び出します。プロセス検証フェーズ-これは正しいですか?
私が直面している問題は、検証エラーのために、プロセス検証フェーズでFacesMessageを追加し、INVOKEAPPLICATIONPHASEでユーザーが実行したアクションの確認メッセージを追加することです。 RENDER RESPONSEフェーズのページ?-上記の質問で私の理解が正しければ-現在のFacesContextにFacesMessagesがないことを確認した後、条件付きで確認FacesMessageを追加するのがベストプラクティスですか?
これがメッセージの追加方法です:
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR,Constants.invalidMessageDetail,null);
FacesContext.getCurrentInstance().addMessage(null, facesMessage);
throw new ValidatorException(facesMessage);
表示方法は次のとおりです。
<h:messages errorClass="ErrorMsg" warnClass="WarningMsg" infoClass="InfoMsg" layout="table" />
あなたの助けに感謝。