我正在使用带有richfaces的JSF。我正在使用核心 ip 的 convertDateTime 将 inputText 转换为 Date。
<h:inputText styleClass="datepicker" value="#{searchBean.creationDate}" id="inputfield">
<f:convertDateTime pattern="yyyy-MM-dd" />
</h:inputText>
SearchBean中的creationDate是Java util Date 类型,我使用 jquery datpicker 来填充输入字段。
问题是它不能正常工作。当我提交表单而不输入任何日期(空输入字段)时,一切正常。但是,当我选择日期时,调用不会到达 bean(在调试模式下测试过)。该页面只是在服务器端刷新,没有任何异常/日志记录。
我已经实现了一个快速的LifeCycleListener,它显示了以下输出:
输入字段填充日期:
START PHASE RESTORE_VIEW(1)
END PHASE RESTORE_VIEW(1)
START PHASE APPLY_REQUEST_VALUES(2)
END PHASE APPLY_REQUEST_VALUES(2)
START PHASE PROCESS_VALIDATIONS(3)
END PHASE PROCESS_VALIDATIONS(3)
START PHASE UPDATE_MODEL_VALUES(4)
END PHASE UPDATE_MODEL_VALUES(4)
START PHASE INVOKE_APPLICATION(5)
END PHASE INVOKE_APPLICATION(5)
START PHASE RENDER_RESPONSE(6)
END PHASE RENDER_RESPONSE(6)
日期为空:
START PHASE RESTORE_VIEW(1)
END PHASE RESTORE_VIEW(1)
START PHASE APPLY_REQUEST_VALUES(2)
END PHASE APPLY_REQUEST_VALUES(2)
START PHASE PROCESS_VALIDATIONS(3)
END PHASE PROCESS_VALIDATIONS(3)
START PHASE RENDER_RESPONSE(6)
END PHASE RENDER_RESPONSE(6)
很明显,在第二种情况下缺少两个步骤。我对 JSF 很陌生,对它的内部工作没有太多了解。此外,没有验证/转换异常。我被困在这里,我不知道在哪里寻找解决方案。任何帮助表示赞赏。