2015-10-21 83 views
0

以下是丰富代码:日历我使用在JSF形式丰富:日历日期模式验证

<rich:message for="biddate" id="bidDateErrMsg"/> 
<rich:calendar id="biddate" showWeeksBar="false" datePattern="MM/dd/yyyy" inputSize="10" maxlength="10" value="#{bean.bidDate}" enableManualInput="true" converterMessage="Invalid Date"></rich:calendar> 

由于enableManualInput设置为true,用户可以输入日期以及手动。在datePattern'MM/dd/yyyy'中,年份部分只应接受整数。但它也接受字母表。

提交JSF表单后,富:是没有得到显示日历的converterMessage当我输入的日期的最后三个数字字母如下图所示

01/01/2k13 
01/01/20k3 
01/01/201k 

和形式被提交,这是不对的。

当我输入的日期的其他地方字母如下图所示,

01/01/k013 
01/0k/2013 
0k/01/2013 

converterMessage显示在屏幕上,形式不提交的,这是正确的。

这是丰富的缺陷:日历还是我在这里做错了什么?

回答

0

解析器是如何工作的(在Java中),yyyy模式接受任意数量的数字而不仅仅是四个。有关更多详细信息,请参见here

+0

那么为什么01/01/2k13通过而01/01/k013不通? – Kukeltje

+0

因为'1/1/2'是有效日期。 – Makhiel