我创建了一个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;
}
但是set属性没有调用上面的函数,我不知道这里有什么问题。
答案 0 :(得分:2)
您的问题是,您试图致电setDob(SimpleDateFormat dob)
,而您的意思是setDob(Date dob)
。您没有传递格式,而是传递实际日期。
也就是说,我在ATG中看到了很多例子,当试图通过自由文本字段传递日期时,即使你传递'date'格式,也会在后端产生不必要的错误。大多数实现都会使用类似jQuery DatePicker
库的日期格式化日期,并将其作为String
值传递给ATG。然后在formhandler中实现一个验证方法,该方法将String
解析为有效日期并返回相应的异常。您的上述方法充满危险。
答案 1 :(得分:0)
是的,有方法,但大多数人更喜欢:
Jsp:-/*dsp:input */
<dsp:getvalueof var="dateOfBirth" bean="ProfileFormHandler.value.dateOfBirth" />
/*simple input */
<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);
<dsp:getvalueof var="dateOfBirth" bean="ProfileFormHandler.value.dateOfBirth" />
希望这对你有所帮助。