我正在使用Struts2 jQuery Datepicker插件。对于标签库,JSP,后端,我添加了以下代码段供您参考。我已经使用java.util.Date类作为后端。每次我运行代码都会给我错误。根据我的理解,struts2-jquery不会直接将datePicker值转换为java.util.Date
,我们需要将startDate的dateType从java.util.Date
更改为String
。如果我错了,请纠正我。
有更好的解决方法吗?
在应用程序中的任何地方使用String
并不是最佳解决方案,因为我需要更新很多地方,当然服务和DAO的实施也会受到影响。
先谢谢了。
标签库:
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
JSP日期选择器:
<sj:datepicker id="startDate" name="searchFilter.startDate" cssStyle=" width:110px" displayFormat="mm/dd/yy" buttonImage="images/calendar.gif"/>
Java代码后端:
private Date startDate;
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
错误:
Error setting expression 'startDate' with value '[Ljava.lang.String;@412acad5'
java.lang.NoSuchMethodException: setStartDate([Ljava.lang.String;)
答案 0 :(得分:0)
可能的解决方案是,因为我不想更改 Service 和 DaoImpl 类。我所做的是在数据类型为String
的java类中定义了一个变量,并与使用startDate(java.util.Date
)的jsp组件进行绑定
private String startDateValue;
public String getStartDateValue() {
return startDateValue;
}
public void setStartDateValue(String startDateValue) {
this.startDateValue = startDateValue;
}
在setter方法中,我必须定义java java.text.SimpleDateFormat
对象以将String
的值解析为java.util.Date
对象。
final Date startDate = new SimpleDateFormat("dd/MM/yyyy").parse(startDateValue);