1

以下は、StackOverflowで見つけた4つの関連する投稿です。

これらの投稿では、投稿者はなぜこのエラーメッセージが表示されたのかわかりませんでした。私の場合、なぜこのエラーが発生するのかわかります。デフォルトの「検証エラー:値が無効です」というメッセージを「これは私のメッセージです」と変更したいと思います。どうすればこれを達成できますか?

PS1:私はすでに、、および属性を試しましたrequiredMessagevalidatorMessageconverterMessageこの特別な場合にはそれらのどれも呼び出されません。

PS2:私はRichFaces 4.1.0を使用しているので、使用しているドロップダウンリストがrich:select1つです。


シナリオ:

  1. 私には2つのエンティティがあります。たとえば、雇用者と従業員です。
  2. 従業員を作成しますemployee1
  3. 雇用主を作成し、ドロップダウンリストを介してemployer1リンクします。employee1
  4. 雇用主作成フォームを提出する前に、データベースからを削除employee1します。
  5. 次に、雇用主作成フォームを送信します。このメッセージは、employee1もう利用できないため、ドロップダウンリストの横に表示されます。

この動作は私が期待したものですが、デフォルトのメッセージを別の、よりユーザーフレンドリーなものに変更したいと思います。

4

2 に答える 2

2

すべてのストックJSFメッセージは、javax.facesJSFディストリビューションのパッケージに含まれています。あなたが探しているのはキーjavax.faces.component.UISelectone.INVALID(またはUISelectMany)です。このプロパティを変更して、必要な結果を取得します

于 2013-02-19T15:58:22.983 に答える
2

カスタム コンバーターを提供し、それを でコンバーター例外としてスローしgetAsObject()ます。

基本的、

@Override
public Object getAsObject(FacesContext context, UIComponent component, String submittedValue) {
    if (submittedValue == null || submittedValue.isEmpty()) {
        return null;
    }

    Employee employee = findEmployeeInDatabase(submittedValue);

    if (employee == null) {
        throw new ConverterException("Sorry, unknown employee.");
    }
    else {
        return employee;
    }
}

これにより、 も使用できることに注意してくださいconverterMessage

于 2013-02-19T16:14:39.123 に答える