カスタム プロパティ エディターをスプリング ハンドラーに追加しました。また、jspx ページのプロパティの 1 つでは機能しますが、他のプロパティでは機能しないため、Money クラスの toString を出力するだけです。
public void initBinder(final HttpServletRequest request, final ServletRequestDataBinder binder) {
binder.registerCustomEditor(Money.class, new MoneyPropertyEditor());
}
また、Money 型の jspx プロパティは次のように参照されます。
<cat:input type="text" uiid="amount" bindpath="form.pack.amount"/>€
Money プロパティ エディタは次のようになります
public String getAsText() {
String textValue = null;
if (this.getValue() != null) {
Money money = (Money) this.getValue();
System.out.println("getAsText money: " + money);
textValue = String.valueOf(money.getAmount());
System.out.println("textValue: " + textValue);
}
return textValue;
}
システム出力は次のとおりです。
getAsText money: Money: Amount: 0.7, AsCents: 70
textValue: 0.7
そのため、プロパティ エディターが機能し、呼び出されます。しかし、入力はまだ toString 表現を保持しています:money: Money: Amount: 0.7, AsCents: 70
ではありません0.7
出力カスタム プロパティ エディタを使用するには、他に何を設定する必要がありますか?