无法使用Spring MVC表单的JSTL格式taglib

时间:2012-05-09 18:21:44

标签: spring spring-mvc

我正在将一些代码从本土MVC更改为Spring 2.5 MVC。我们有一个用于编辑对象的表单,因此我在控制器中使用formBackingObject()来使用当前值填充表单字段。在旧的MVC中,我们使用JSTL fmt taglib来格式化日期和货币字段。这很好,因为格式化在表示层中。

现在使用Spring,使用formBackingObject()正确填充字段,但Spring无法识别form:input元素中的value属性:

<%@ 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>

关于如何在Spring表单中正确格式化值的想法?我在网上找不到太多内容,所以我认为它是一个非常简单的语法错误,或者我完全走错了路。

1 个答案:

答案 0 :(得分:0)

Spring form:inputpath属性而不是value属性中识别输入的值。如果看到spring form tld,则表单输入标记没有属性值。

  1. 我认为的一种方法是格式化后端的值并将其设置在前端。
  2. 否则,您可以使用传统的spring:bind代替弹簧形式。 Spring Bind Reference