如何在wicket中使用html5日历输入类型

如何在wicket中使用html5日历输入类型,html,wicket,wicket-1.5,wicketstuff,Html,Wicket,Wicket 1.5,Wicketstuff,我正在试验HTML5。我想知道的是Wicket如何处理HTML5输入类型,如日期和电子邮件,如果有的话?目前,Wicket使用java脚本为日期输入生成日历 使这个问题复杂化的是Wicket如何处理不支持日期类型的HTML5输入标记(以及其他新的HTML5标记)的浏览器 Wicket(1.5及以上版本)不支持输入类型='date'或类似的开箱即用结构。Wicket扩展中有一个DateTextField,但它没有指定type='date'(尚未指定)。我建议您创建自己的实现,以正确设置type属性

我正在试验HTML5。我想知道的是Wicket如何处理HTML5输入类型,如日期和电子邮件,如果有的话?目前,Wicket使用java脚本为日期输入生成日历

使这个问题复杂化的是Wicket如何处理不支持日期类型的HTML5输入标记(以及其他新的HTML5标记)的浏览器

Wicket(1.5及以上版本)不支持输入类型='date'或类似的开箱即用结构。Wicket扩展中有一个
DateTextField
,但它没有指定
type='date'
(尚未指定)。我建议您创建自己的实现,以正确设置type属性(我猜为什么没有将它们添加到字段中是因为它会破坏现有的应用程序)

还有,还有。它们添加type属性并在服务器上验证输入


不支持HTML5输入的浏览器会退回到
type='text'
,因此从Wicket的角度来看,没有什么不同。Wicket仍将根据设置的规则验证输入。

您只需重写方法TextField#getInputType()并返回“date”,这样您就可以从TextField组件跳过对onComponentTag方法的验证。例如,如果您不想创建自己的组件,可以使用如下匿名类:

        DateTextField dob = new DateTextField("dob", dobModel){
            private static final long   serialVersionUID    = 1L;

           /* (non-Javadoc)
            * @see org.apache.wicket.markup.html.form.TextField#getInputType()
            */
            @Override
            protected String getInputType()
            {
                return "date";
            }           
        };

谢谢Martijn。我猜HTML5的拖放功能在Wicket中也不起作用……因为它可能会破坏组件层次结构。