私は独自のウィケット(1.5.x)を持っています。私のデータベースの辞書テーブルからデータを取り出すアプリケーション起動時に読み込まれるカスタムStringローダー。データベースからのバリデータメッセージからのカスタムウィッケット
デフォルトの文字列ローダーが読み込まれていてもこのローダーを使用すると、検証テキストにusername/passwordのような$ {component}ラベルは表示されません。フィールド名が空のままのフィールドが必要です。どうすればこの問題を解決できますか?私は1 solution.Hereを試してみました
は私のコードです:
1)私は自分のアプリケーションクラスでは、このようなローダー私の文字列ローダを持っている:ここ
getResourceSettings().getStringResourceLoaders().add(0,
new ClassStringResourceLoader(MyApplication.class));
getResourceSettings().getStringResourceLoaders()
.add(1, new DictionaryLoader((IDicitureService)
applicationContext.getBean(IDicitureService.class)));
DictionaryLoader
をIStringResourceLoader
だけの実装です。
2)は私のログインフォームでは、私はこのように私のユーザー名とパスワードのフィールドを追加しました:
は、今、私がチェックした場合など
new StringResourceModel("COMP:1:0", this, null)
だけで、ユーザー名などの文字列を返す
final FeedbackPanel feedback = new FeedbackPanel("feedback");
feedback.setOutputMarkupId(true);
form.add(feedback);
form.add(new FormComponentFeedbackBorder("username_border")
.add(new RequiredTextField("username",String.class)
.setLabel(new StringResourceModel("COMP:0:0", this, null))));
form.add(new FormComponentFeedbackBorder("password_border").
add(new PasswordTextField("password")
.setLabel(new StringResourceModel("COMP:1:0", this, null))));
add(form);
...パスワード私のページでは、実際にバリデーターラベル用のTextField.setLabel()を使用すると、バリデーターのコンテンツを指定されたテキストに置き換えます。しかし、ここでは$ {label}を使用していません。
これは良い方法ですか?それ以外の方法で行うこともできます。
ありがとうございました。