1

我创建了一个 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;
}

但是设置属性没有调用上述函数,我不确定这里有什么问题。

4

2 回答 2

2

你的问题是你试图打电话给setDob(SimpleDateFormat dob)你的意思是setDob(Date dob)。您没有传递格式,而是传递实际日期。

也就是说,我在 ATG 中看到了许多示例,当您尝试通过自由文本字段传递日期时,即使您传递了“日期”格式,也会在后端出现不必要的错误。大多数可行的实现将使用 jQuery 库之类的东西格式化日期,DatePicker并将其作为String值传递给 ATG。然后在您的表单处理程序中实现一个验证方法,该方法将解析String为有效日期并返回适当的异常。你上面的方法充满了危险

于 2014-01-06T09:57:04.237 回答
0

是的,有很多方法,但大多数人更喜欢:

  1. 在 JSP 上做一个简单的输入框不是 desp:input
  2. 该输入框必须具有 id 或类,使用我们设置一些隐藏在您的 jsp 中的 dsp:input。
  3. 编写 jQuery 脚本,将日期设为 MM/DD/YYYY,并使用 jQuery 设置隐藏的 dsp:input 值。

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);

希望这对您有所帮助。

于 2014-06-04T10:31:54.087 回答