我正在寻找解决我当前问题的方法。我有一个经典的POJO由Hibernate用date
变量映射。
@Entity
@Table(name="record")
public class Record implements Serializable {
@Column(name = Record.COLUMN_CREATED)
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
@DateTimeFormat(pattern="dd.MM.yyyy hh:mm")
private Date created;
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
}
此实体以时间戳变量(2013-09-25 22:13:18.000)保存在MySQL数据库中。
我正在使用Spring表单显示保存在POJO中的数据。
<form:form method="post" commandName="record" action="record/update.htm">
<table>
<tr>
<td><form:label path="<%=Record.COLUMN_CREATED%>"><spring:message code="administration.record.created"/>:</form:label></td>
<td><form:input path="<%=Record.COLUMN_CREATED%>"/></td>
</tr>
</table>
</form:form>
编辑:我已经有@initbinder
了,但它只在通过窗体创建新对象时起作用,因此它将String
强制转换为Date
。但是当我想用DB中的现有数据填充表单输入时,它就不起作用了。
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy h:mm");
sdf.setLenient(true);
binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}
我使用的是没有Joda time的Spring3.1.1.Release,只是普通的java.util.date。
dispatcher-servlet.xml中的
设置正确。当我使用调试器时,我可以看到,在从表单输入值创建新对象时,使用了CustomDateEditor
的setastext(String text)
方法。我希望第二个方法String getAsText()
将用于在填写表单输入时将数据格式化为String。但是,它不是!
@datetimeformat(pattern=“dd.mm.yyyy hh:mm”)
注释基本上是说,当您在特定模式中获得字符串
时,将其转换为
java.util.date
、java.util.calendar
、java.long.long
或Joda时间字段。
在您的示例中,它是java.util.date
。
当你做一些像
<spring:message code="administration.record.created"/>:</form:label>
您只需对创建的
日期
对象调用ToString()
。在ToString()
中返回字符串时,Date
类在内部使用自己的格式,这就是您看到的。
考虑使用JSTL中的fmt:formatdate
标记。
我想将spring date字段绑定到pojo类并返回日期 DateOfBornd的类型为java.sql.Date。现在,当我将日期从spring形式传递给函数setDateOfBorning时,它取空值 例如,在register.jsp(注册表单)中,我有specific字段 java(Pojo类) 当我调用getDateOfBorne()时 返回: 预期的 我得到的信息: 请帮助我如何转换这
问题内容: 对于表示字符串,数字和布尔值的请求参数,Spring MVC容器可以立即将它们绑定到键入的属性。 Spring MVC容器如何绑定代表日期的请求参数? 说到哪一个,Spring MVC如何确定给定请求参数的类型? 谢谢! 问题答案: Spring MVC如何确定给定请求参数的类型? Spring利用ServletRequestDataBinder绑定其值。该过程可以描述如下 … 在后台
DTO 如果是直接的,则返回一个异常:
我有一些这样的疑问: 这会将此 SQL 查询发送到数据库: 现在我想将这种类型的查询发送到数据库: 我需要传递列表吗?
我试图使用标签库绑定 POJO。绑定引用类 bean 变量后,我收到“错误请求错误 - http 状态 400”。 如果我删除引用类的绑定,则我的表单将成功提交,并且值也会填充在类中。 和 JSP: 我从几篇文章中获得了引用,但是当我在提交JSP之前添加行时,他们正在获取请求加载引用bean列表。
我有一个使用Spring MVC的应用程序,它与REST服务交互。UI有一个典型的使用JSP的表单输入。 并且在UI上绑定到一个输入: 因此,在我的控制器中,当我发布表单并在输入框中输入适当的“yyyy-mm-dd”字符串时,字段为null并出现绑定错误。Controller方法如下所示 如果我查看BindingResult,我会看到一个错误,如下所示: 如果我用@datetimeformat(p