我正在尝试使用HTML5。我想知道的是Wicket如何处理HTML5输入类型,如日期和电子邮件,如果有的话?目前,Wicket使用java脚本生成日期输入的日历。
这个问题的复杂化是Wicket如何处理不支持date5类型的HTML5输入标记的浏览器(以及其他新的HTML5标记)。
答案 0 :(得分:4)
Wicket(1.5及以后版本)不支持输入类型='日期'或开箱即用的类似结构。 Wicket Extensions中有DateTextField
,但它尚未指定type='date'
。我建议创建自己的实现,正确设置type属性(我猜他们为什么没有添加到字段中,它会破坏现有的应用程序)。
有EmailTextField,NumberTextField和others。这些添加了type属性并验证服务器上的输入。
不支持HTML5输入的浏览器会回退到type='text'
,因此从Wicket的角度来看,没有什么不同。 Wicket仍将根据设定的规则验证输入。
答案 1 :(得分:0)
您只需要覆盖方法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";
}
};