0

フォームがあり、オブジェクトの浮動小数点数の CustomNumberEditor を登録しました。

@InitBinder
public void initBinder(WebDataBinder binder){
    NumberFormat numberFormat = NumberFormat.getInstance();
    binder.registerCustomEditor(Float.class, new CustomNumberEditor(Float.class, numberFormat, true));
}

フォームのセクションを更新する ajax コントローラー メソッドがあるので (更新された html フラグメントを返すだけです)、コントローラーで次のようにします。

public String retrieveFormSection(@PathVariable("id") String id, Model model) {
    ... 
    model.addAttribute("myObject", myObject);
    return "myJSP";
}

その JSP では、エディターを使用していくつかのデータを印刷したいだけです。

<input type="text" value="${myObject.myNumber}"/>

myObject は @ModelAttribute オブジェクトとして配置されていないため、エディターは使用されません。モデルに追加するオブジェクトのフィールドにエディターを登録する方法はありますか? この方法では、エディターの getAsText() メソッドのみを使用し、setAsText() では使用しないため、おそらくエディターを使用しないでください。これには別の Spring 機能を使用する必要がありますか?

ありがとう。

4

1 に答える 1

2

<spring:bind>によって処理された値を表示するために使用できますPropertyEditor

<spring:bind path = "myObject.myNumber">
    <input type="text" value="${status.displayValue}"/> 
</spring:bind>

ただし、入力フィールドでレンダリングする必要がある場合は<form:input>、通常のフォームと同様に を使用することもできます。にしたくない場合は、代わりに次<form>を使用できます。<spring:nestedPath><form:form>

<form:form modelAttribute = "myObject">
    <form:input path = "myNumber" />
</form:form>

<spring:nestedPath path = "myObject">
    <form:input path = "myNumber" />
</spring:nestedPath>
于 2011-01-18T13:49:46.643 に答える