Java 使用模式时未激发action或actionListener;hh:mma";在素数面中,日历p:日历
我需要使用prime faces日历来填充时间,如下所示:Java 使用模式时未激发action或actionListener;hh:mma";在素数面中,日历p:日历,java,jsf,primefaces,date-format,datetime-conversion,Java,Jsf,Primefaces,Date Format,Datetime Conversion,我需要使用prime faces日历来填充时间,如下所示: <h:body> <h:form> <p:calendar pattern="hh:mm a" value="#{bean.startTime}"/> <p:commandButton value="Save" actionListener="#{bean.saveAppointment}" /> </h:form> </h:body
<h:body>
<h:form>
<p:calendar pattern="hh:mm a" value="#{bean.startTime}"/>
<p:commandButton value="Save" actionListener="#{bean.saveAppointment}" />
</h:form>
</h:body>
但是,saveAppointment
方法根本没有启动。毫无例外
在跟踪问题之后,我得出结论,问题来自primefaces在封面下使用的日期转换。这是因为当我从模式中省略a
,即(模式变为pattern=“hh:mm”
)。
然后动作正常启动,没有任何问题
注意Primefaces版本是6我使用
pattern=“HH:mm”
找到了一个解决办法,大写字母H将使小时数基于0-23。我使用pattern=“HH:mm”
找到了一个解决办法,大写字母H将使小时数基于0-23。检查选项:timeOnly=“true”.选中选项:timeOnly=“true”。这与此无关。它只与您希望如何显示日历弹出日期或时间有关。这可能与本期无关。但是我不确定你想要实现什么。预期值为“09:33 AM”,在这种情况下,值是正确的(尝试输入“09:33 AM”),您可以调用您的操作,在另一种情况下(对于格式为hh:mm的值),此输入的验证不正确,这就是操作未执行的原因。验证错误不例外是正常行为,如果您添加p:messages,您可能会看到错误消息。尝试应用上面的简单示例,您将看到非firedIt操作是如何无关的。它只与您希望如何显示日历弹出日期或时间有关。这可能与本期无关。但是我不确定你想要实现什么。预期值为“09:33 AM”,在这种情况下,值是正确的(尝试输入“09:33 AM”),您可以调用您的操作,在另一种情况下(对于格式为hh:mm的值),此输入的验证不正确,这就是操作未执行的原因。验证错误不例外是正常行为,如果您添加p:messages,您可能会看到错误消息。尝试应用上面的简单示例,您将看到如何不触发该操作