我想要从我的JSP到我的控制器得到日期但我尝试了所有但我仍然没有得到结果:
JSP
<div>
<f:form modelAttribute="banqueForm2" method="post" action="testero33">
<table>
<tr>
<td>Date1 :</td>
<td><f:input path="date1" type="date" name="date" />
</td>
<td><f:errors path="date1" cssClass="error">
</f:errors></td>
<td>Date2 :</td>
<td><f:input path="date2" type="date" name="date" />
</td>
<td><f:errors path="date2" cssClass="error">
</f:errors></td>
<td><input type="submit" value="OK" /></td>
</tr>
</table>
</f:form>
</div>
控制器
@RequestMapping(value="/testero33")
public String testero3(@Valid BanqueForm2 bf, Model model, Date date1, Date date2){
System.out.println("-------------date JSP---------------: ");
System.out.println("*** Cosluter Strin ***: " + date1);
System.out.println("*** Cosluter Strin ***: " + date2);
System.out.println("------------End JSP---------------: ");
return "DateTest";
}
BanqueForm2.class
public class BanqueForm2 {
private Date date1;
private Date date2;
public Date getDate1() {
return date1;
}
public void setDate1(Date date1) {
this.date1 = date1;
}
public Date getDate2() {
return date2;
}
public void setDate2(Date date2) {
this.date2 = date2;
}
}
然后我得到了这个例外
Field error in object 'banqueForm2' on field 'date1': rejected value [2015-10-01]; codes [typeMismatch.banqueForm2.date1,typeMismatch.date1,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [banqueForm2.date1,date1]; arguments []; default message [date1]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'date1'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type java.util.Date for value '2015-10-01'; nested exception is java.lang.IllegalArgumentException]
Field error in object 'banqueForm2' on field 'date2': rejected value [2015-02-12]; codes [typeMismatch.banqueForm2.date2,typeMismatch.date2,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [banqueForm2.date2,date2]; arguments []; default message [date2]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'date2'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type java.util.Date for value '2015-02-12'; nested exception is java.lang.IllegalArgumentException]org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:111)
答案 0 :(得分:1)
我认为您需要约会日期。
尝试将其放入您的控制器
@InitBinder
public final void initBinderUsuariosFormValidator(final WebDataBinder binder, final Locale locale) {
final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", locale);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
通过这种方式,spring将知道如何将String转换为Date(请记住,Request对象只是一个String映射)