Java JSF中convertDateTime的奇怪行为
我将JSF与richfaces一起使用。我正在使用核心ip的convertDateTime将inputText转换为日期Java JSF中convertDateTime的奇怪行为,java,richfaces,jsf-1.2,Java,Richfaces,Jsf 1.2,我将JSF与richfaces一起使用。我正在使用核心ip的convertDateTime将inputText转换为日期 <h:inputText styleClass="datepicker" value="#{searchBean.creationDate}" id="inputfield"> <f:convertDateTime pattern="yyyy-MM-dd" /> </h:inputText> 日期为空: START PHASE RES
<h:inputText styleClass="datepicker" value="#{searchBean.creationDate}" id="inputfield">
<f:convertDateTime pattern="yyyy-MM-dd" />
</h:inputText>
日期为空:
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非常陌生,对它的内部工作也不太了解。此外,没有验证/转换例外。我被困在这里,不知道到哪里去找解决办法。感谢您的帮助。当您不输入日期时,未显示更新模型和调用应用程序的原因是验证失败,如果验证失败,则不会使用UI内容更新模型,并且不会调用应用程序逻辑(您的自定义代码) 如果在.properties文件中添加了错误消息,请添加以下内容
javax.faces.converter.DateTimeConverter.DATE=value ({0}) must be a date
否则
这将允许在验证失败时显示错误消息
提交null作为日期时,将出现转换错误。如果使用JSF 1.2和RichFaces 3.x,则使用
rich:calendar
标记组件处理日期,它在后台使用jquery进行显示。在您的示例中使用它:
在我的申请中:
public class ApplicationBean {
private Locale locale;
private String datePattern;
public ApplicationBean() {
locale = new Locale("es"); //for spanish
datePattern = "dd/MM/yyyy"; //you can change it to yyyy-MM-dd
}
}
其中ApplicationBean具有ApplicationScope
更多信息请点击此处:
,要么使用
这样页面中只会显示它非常感谢,这对调试问题非常有帮助:)
public class ApplicationBean {
private Locale locale;
private String datePattern;
public ApplicationBean() {
locale = new Locale("es"); //for spanish
datePattern = "dd/MM/yyyy"; //you can change it to yyyy-MM-dd
}
}