2011-01-18 2 views
0

양식이 있고 내 개체의 부동 소수점 숫자에 대한 CustomNumberEditor를 등록했습니다. 그 JSP I에서모델의 개체에 속성 편집기 적용

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

: 나는 같은 것을 할 컨트롤러에 있도록

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

내가 형태의 섹션을 업데이트 할 아약스 컨트롤러 메소드를 (그냥 업데이트 된 HTML 조각을 반환) 단지 편집기를 사용하여 일부 데이터를 인쇄 할 : 인 myObject로
<input type="text" value="${myObject.myNumber}"/> 

는 @ModelAttribute로 배치되지

편집기가 사용되지 않는 객체. 모델에 추가하는 객체의 필드에 편집기를 등록 할 수있는 방법이 있습니까? 이 방법으로 편집기의 getAsText() 메서드 만 사용하고 setAsText() 메서드는 사용하지 않기 때문에 편집자를 사용해서는 안됩니다. 다른 Spring 기능을 사용해야합니까?

감사합니다.

답변

2

당신은 PropertyEditor에 의해 처리 값을 표시 <spring:bind>을 사용할 수 있습니다 : 당신이 입력 필드에서 렌더링해야하는 경우

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

그러나, 당신은 또한 일반 형태와 마찬가지로, <form:input>를 사용할 수 있습니다. 당신이이 <form>에서 일하지 않으려면 <form:form> 대신 <spring:nestedPath>를 사용할 수 있습니다

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

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

그냥 내가 필요한 것, 덕분 그! 좋은 설명. – Javi