簡體   English   中英

將屬性編輯器應用於模型中的對象

[英]Apply property editor to object in the model

我有一個表單,並且已經為我的對象的浮點數注冊了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>來顯示由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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM