Zmieniam kod z domowej uprawy MVC na Spring 2,5 MVC. Mamy formularz do edycji obiektu, więc używam go formBackingObject()
w moim kontrolerze, aby wypełnić pola formularza bieżącymi wartościami. W starym MVC użyliśmy JSTL fmt
taglib do formatowania pól daty i pieniędzy. To było miłe, ponieważ formatowanie było w warstwie prezentacji.
Teraz, w Spring, pola są wypełnione poprawnie formBackingObject()
, ale Spring nie rozpoznaje atrybutu value w pliku form:input
element:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<form:form method="post" commandName="editProgramCommand" name="editTitleForm">
<fmt:formatNumber type="NUMBER" value="${program.price}" var="formattedPrice" minFractionDigits="2" />
<form:input path="price" id="price" value="${formattedPrice}" />
... other fields
</form:form>
Myśli o tym, jak prawidłowo formatować wartości w formie wiosennej? Nie znajduję zbyt wiele w Internecie, więc stwierdzam, że jest to albo bardzo prosty błąd składniowy, albo jestem całkowicie na niewłaściwym torze.
Odpowiedzi:
0 dla odpowiedzi № 1Wiosna form:input
rozpoznać wartość wejścia od jego path
atrybut, a nie z value
atrybut. Jeśli widzisz forma sprężysta tld, nie ma wartości atrybutu dla znacznika wejściowego formularza.
- Jednym ze sposobów, które moim zdaniem jest formatowanie wartości w back end i przynieść i ustawić go z przodu.
- W przeciwnym razie możesz użyć konwencjonalnego
spring:bind
zamiast formy sprężynowej. Odnośnik Spring Bind