Struts 2和ModelDriven:jQuery插件vs Dojo插件

时间:2013-01-03 19:58:14

标签: java jsp struts2 struts2-jquery model-driven

我正在使用带有ModelDriven的Struts2进行表单提交。

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

但是当在表单中获取jQuery的datepicker标记并选择日期时,ModelDriven中的对象具有空值。 如果没有选择日期并且提交了表单,那么它可以正常工作。

我是否需要设置错过才能解决问题?

I had included following jar for JQuery

JQuery的:

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

3 个答案:

答案 0 :(得分:1)

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

readonly属性默认为false,表示输入是否为只读。

答案 1 :(得分: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其余的是可选的。

jQuery Datepicker我使用mm / dd / yy。要将此格式更改为struts2所期望的格式,请更改用于演示文稿的defaultFormat或设置altFormat,以便将提交的内容更改为提交期间显示的格式(因此,如果您喜欢“mm / dd / yy”,则可以将altFormat设置为“yyyy- mm-dd“并获得所需的效果)。

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

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

正如你所看到的,jQuery很容易为此提供,如何使用标签...我不知道。欢迎其他人获取此信息,并在另一个答案中扩展,如果可能的话,使用标签特定技术。

答案 2 :(得分:0)

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

所以struts为 JQuery 找到setDate(String)而不是setDate(Date)

相关问题