Java 将特性编辑器应用于模型中的对象

Java 将特性编辑器应用于模型中的对象,java,spring,data-binding,spring-mvc,property-editor,Java,Spring,Data Binding,Spring Mvc,Property Editor,我有一个表单,我已经为我的对象的浮点数注册了CustomNumberEditor @InitBinder public void initBinder(WebDataBinder binder){ NumberFormat numberFormat = NumberFormat.getInstance(); binder.registerCustomEditor(Float.class, new CustomNumberEditor(Float.class, numberForm

我有一个表单,我已经为我的对象的浮点数注册了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功能吗

谢谢。

您可以使用
显示
属性编辑器处理的值:

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

但是,如果需要在输入字段中呈现,也可以使用
,与常规表单一样。如果不希望它位于
中,可以使用
而不是


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

<spring:nestedPath path = "myObject">
    <form:input path = "myNumber" />
</spring:nestedPath>