Я создаю форму JSP, которая включает в себя Kendo UI DatePicker. По какой-то причине дата не попадает в контроллер JSP с функцией request.getParameter. Это только кажется нулевым. Как мне исправить эту проблему?
Я искал Stackoverflow, поддержку пользовательского интерфейса Kendo и Google. Я попробовал несколько вариантов, но безуспешно. Я пробовал разные браузеры и среды разработки.
Раздел формы, который включает указатель даты:
<table class="vipTable">
<tr>
<th class="strong" colspan="3">Time Frame</th>
</tr>
<tr>
<td>Date Req <input type="text" name="dateReq" id="dateReq" size="10" value=""/><BR>(mm/dd/yyyy)</td>
<td>Expected Start Time <input id="startTime" name="startTime" title="startTime" value="8:00 AM"/></td>
<td>Expected Completion Time <input id="endTime" name="endTime" title="endTime" value="10:00 AM"/></td>
</tr>
</table>
JS использовал для настройки DatePicker таким образом, чтобы:
- Активны только воскресенья и выбираются только будущие воскресенья
- отключить ввод с клавиатуры; принудительное использование календаря DatePicker
// create DatePicker but ensure that only Sundays can be selected - present and future Sundays).
//That is, if today is Sunday, it is selectable in addition to future Sundays.
var presentDate = new Date();
var dayOfWeek = presentDate.getDay();
if(dayOfWeek != 0) {
// day of week is not Sunday
presentDate.setDate(presentDate.getDate() + ( 7 - dayOfWeek));
}
var dd = presentDate.getDate();
var mm = presentDate.getMonth() + 1; //January is 0!
var yyyy = presentDate.getFullYear();
if (mm < 10) {
mm = '0' + mm;
}
var closestSunday = mm + '/' + dd + '/' + yyyy;
$('#dateReq').attr("value", closestSunday);
$('#dateReq').kendoDatePicker({
value: presentDate,
min: presentDate,
disableDates: ["mo", "tu", "we", "th", "fr", "sa"],
change: function() {
var value = this.value();
$("#dateReq").attr("value", kendo.toString(new Date(value), "d"));
}
}).data('kendoDatePicker');
// Disable manual input on this field, force use of calendar.
$("#dateReq").attr("disabled","disabled");
JSP-код пытается получить значение DatePicker
String dateReqString = request.getParameter("dateReq");
if (MY_LOG.isDebugEnabled()) {
MY_LOG.debug("formattedDate: dateReqString = " + dateReqString);
}
Сообщение об ошибке в журнале
[WebContainer : 7] DEBUG {} ITOutageSubmitController - formattedDate: dateReqString = null
java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1450)
at java.text.DateFormat.parse(DateFormat.java:375)
at com.kmbs.itsform.portlet.controller.ITOutageSubmitController.handleActionRequest(ITOutageSubmitController.java:57)
Обратите внимание, что строка 57 в ITOutageSubmitController пытается использовать значение dateReqString из параметра dateReq, но оно равно null.
Спасибо.