Как я могу получить поле Date со страницы JSP в repositoryFormHandler?
Я создал JSP, у которого есть поле ввода для даты, которая принимает дату как 1987-12-16
<dsp:input bean="RegisterFormHandler.dob" date="yyyy-MM-dd" size="25" type="text" required="true" />
и я пытаюсь установить значение в RepositoryFormHandler
public void setDob(SimpleDateFormat dob)
{
this.dob = dob;
}
но установить свойство не вызывает вышеуказанную функцию, я не уверен, что здесь проблема.
2 ответа
Ваша проблема в том, что вы пытаетесь позвонить setDob(SimpleDateFormat dob)
где вы имели в виду setDob(Date dob)
, Вы передаете не формат, а фактическую дату.
Тем не менее, я видел множество примеров в ATG, когда пытался передать дату через поле с произвольным текстом, что приводит к ненужным ошибкам в серверной части, даже когда вы передаете формат даты. Большинство реализаций, которые работают, форматируют дату с помощью чего-то вроде jQuery. DatePicker
библиотека и передать его в ATG как String
значение. В своем обработчике формы вы затем реализуете метод проверки, который будет анализировать String
для того, чтобы быть действительной датой и вернуть соответствующее исключение. Ваш подход выше чреват опасностью.
Да, есть способы, но большинство предпочитают как:
- На JSP сделайте простое поле ввода не desp: input
- Это поле ввода должно иметь идентификатор или класс, используя это, мы устанавливаем некоторый dsp: input, который скрыт в вашем jsp.
- Напишите скрипт jQuery, который сделает дату в виде ММ / ДД / ГГГГ и установите скрытое значение dsp: input с помощью jQuery.
Jsp:-/*dsp:input */
<dsp:getvalueof var="dateOfBirth" bean="ProfileFormHandler.value.dateOfBirth" />
/ * простой ввод * /
<input type="text" value="${dob}" maxlength="10" class="field text dob" id="accDOB" name="accDOB"></code>
/ * jQuery * /
var accDOB = $('#accDOB').val(); var d = accDOB.split("/"); var dob = d[1]+'/'+d[0]+'/'+d[2]; //convert the formate in mm/dd/yy $("#dob").val(dob);
Надеюсь, это поможет вам.