2

我正在使用 Struts2ModelDriven来提交表单。

当我使用datetimepickerDojo 的标签并从该标签中选择日期时,表单被正确提交,表单值填充在ModelDriven对象中。

但是,当datepickerjQuery 的标签被取入表单并选择日期时,其中的对象ModelDriven具有空值。

如果未选择日期并提交表单,则它可以正常工作。

我是否需要任何设置来解决问题?

我已经为 JQuery 包含了以下 jar

查询:

<sx:datepicker name="startDate" id="startDate" label="" cssStyle="width:275px; " 
minDate="0" displayFormat="dd/mm/y" changeMonth="true" changeYear="true" 
readonly="true" value="%{startDate}"/>
4

4 回答 4

1

删除readonly="true",一切都会正常工作。

readonly属性 default tofalse告诉输入是否是只读的。

于 2013-01-03T21:04:59.670 回答
0

问题是 Dojo 将 JSP 上的日期值作为 Java 中的日期,而JQuery将其作为字符串。

因此,struts 正在寻找setDate(String)而不是setDate(Date)JQuery寻找。

于 2013-01-03T21:31:05.203 回答
0

我很确定

name="startDate"

应该改为

name="yourmodel.startDate"

显示更多代码以获得更好的帮助...

于 2013-01-03T20:31:39.517 回答
0

Struts 期望将一个值作为独立于语言环境的值发送到服务器,符合RFC3 339 (yyyy-MM-dd'T'HH:mm:ss) 这是默认 dojo 标记(现已弃用)提供的:http ://struts.apache.org/2.0.12/docs/datetimepicker.html

您可以只发送:2013-01-03 其余是可选的。

我使用 mm/dd/yy 的 jQuery Datepicker。要将此格式更改为 struts2 期望的格式,要么更改用于演示的 defaultFormat,要么设置 altFormat 更改提交期间呈现的格式的输入(因此,如果您喜欢“mm/dd/yy”,您可以将 altFormat 设置为“yyyy- mm-dd”并获得所需的效果)。

http://jqueryui.com/datepicker/#date-formats

http://api.jqueryui.com/datepicker/

正如您所看到的,jQuery 很容易为此提供了这一点,如何使用标签来做到这一点......我不知道。欢迎其他人获取此信息并将其扩展为另一个答案,如果可能,请使用特定于标签的技术。

于 2013-01-03T21:03:53.357 回答