我正在尝试使用Spring MVC和一些jquery映射从我的jsp中的DB检索的日期。 我在我的jsp中有这个:
<form:input path="startDate" id="startDate" type="text" cssClass="input date"/>
在我的春季控制器中,我有这段代码:
model.addAttribute(TVA_FORM, TvaMapping.modelToForm(tvaService.findCurrentTva()));
modelToForm
方法代码:
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
TvaForm tvaForm = new TvaForm(tva.getId(), tva.getRate());
tvaForm.setStartDate(sdf.format(tva.getStartDate()));
表格:
public class TvaForm {
private Integer id;
@NotNull
private Float rate;
@NotNull
@NotEmpty
private String startDate;
// Contructors/ getters / setters
}
实体:
public class Tva {
@Id
@GeneratedValue
@Column(name = "ID")
private Integer id;
@Column(name = "RATE", nullable = false)
private Float rate;
@Column(name = "START_DATE", nullable = false)
@Temporal(TemporalType.DATE)
private Date startDate;
}
Jquery的:
$('input.date').datepicker($.datepicker.regional[ "fr" ]).datepicker("option", "dateFormat", "dd-mm-yy");
我做错了什么?为什么startDate
没有被映射到我的jsp字段?
谢谢yoyr帮助家伙!
答案 0 :(得分:0)
在您的jsp页面上,确保<form:form>
标记的modelAttribute值是您放入模型中的TVA_FORM的字符串值,
<form:form method="POST" modelAttribute="string value of TVA_FORM" action="your action url" methodParam="submit">
以下是我如何映射日期类型,同时利用jquery的datepicker。
在我的命令类中,我的日期仍然是java.util.Date类型。无需将其转换为String。我使用Spring的@DateTimeFormat来处理从Date到String的转换和后退。
@DateTimeFormat(pattern = ArmsConstants.DATE_FORMAT_SHORTDATE)
@NotNull
private Date effectiveDate;
@DateTimeFormat(pattern = ArmsConstants.DATE_FORMAT_SHORTDATE)
在我的jsp页面中,
<th><form:label for="ori.effectiveDate" path="ori.effectiveDate" cssErrorClass="error">Effective Date *:</form:label></th>
<td><form:input path="ori.effectiveDate" class="datepicker" type="mdate" cssErrorClass="errorInput datepicker"/>
jquery就像
一样简单$( ".datepicker" ).datepicker();
哦,我还使用jquery maskedinput插件来格式化jsp页面上的选择日期,当然格式应该与我在@DateTimeFormat中使用的格式相同
$("[type='mdate']").mask("99/99/9999",{placeholder:" "});