0

Wicket Web アプリケーションを 1.5.8 から 6.1.1 に移行しています。このプロセスの一環として、テキスト フィールドのバリデータを更新しています。バリデーターのリソース キーがTextArea認識されなくなり、標準を取得しました

'sComments' is longer than the maximum of 250 characters.

リソースキーだと思っていたものを使用して期待していたものではなく、フラッシュメッセージ:

Your comments have a length of 255, which is longer than the maximum of
250 characters that we allow. Please would you amend your comments and try again.

他の誰かがこの問題に遭遇しましたか、それとも Wicket 6.1.1 でこれを機能させるためにリソース キーに名前を付けるのを手伝ってくれますか?

古い 1.5.8 リソース キー

sComments.StringValidator.maximum

Wicket 6.1.1 で動作します (ドキュメントには、後方互換性のため、フォーム StringValidator.* のリソース キーがまだチェックされていると記載されています)。 .

HTMLコード

<textarea wicket:id="sComments" cols="50" rows="5"
 tabindex="5"
></textarea>

ジャバコード

private static final int M_N_MAX_LEN_MESSAGE = 250;

// The matching HTML "textarea" component has no maximum length attribute
TextArea<String> taComments = new TextArea<String>("sComments");
// taComments.add(new MaximumLengthValidator(M_N_MAX_LEN_MESSAGE));    1.5.8 code
taComments.add(StringValidator.maximumLength(M_N_MAX_LEN_MESSAGE));
frmForm.add(taComments);

プロパティファイルの抜粋

# The resource key that worked in Wicket 1.5.8
# sComments.StringValidator.maximum = Your comments have a length of \
# ${length}, which is longer than the maximum of ${maximum} characters \
# that we allow. Please would you amend your comments and try again.

# Wicket 6.1.1 resource key that does not work
sComments.RangeValidator.maximum = Your comments have a length of \
${length}, which is longer than the maximum of ${maximum} characters \
that we allow. Please would you amend your comments and try again.

(私も試しました:

sComments.RangeValidator.Maximum
sComments.RangeValidator.MaximumValidator
sComments.MaximumValidator
sComments.RangeValidator.minimum
sComments.RangeValidator.range
sComments.RangeValidator.exact

成功せずに。)

4

1 に答える 1

1

sComments.StringValidator.maximumStringValidator の javadoc では のリソース キーが推奨されていますが、このバリデータの Wicket 6.1.1 の正しいリソース キーは の形式のようsComments.RangeValidator.maximumです。

于 2012-10-15T16:03:01.457 に答える