首页 > 解决方案 > Primefaces 8 - 验证 primefaces Datepicker mindate 的值时出现 java.lang.UnsupportedOperationException

问题描述

我是 jsf 和 primefaces 的新手。我有一个带有 springboot、jpa 和 jsf-primefaces 的应用程序,这个应用程序可以在 primefaces 版本 7 中正常工作,但是我刚刚升级到版本 8,我遇到了问题。更改日期选择器的值会引发java.lang.UnsupportedOperationException 异常 java.lang.UnsupportedOperationException: null。调试应用程序我看到异常是在 org.primefaces.util.CalendarUtilsconvertDate2LocalTime方法中生成的,特别是当它尝试执行以下强制转换 date.toInstant() 时。AtZone (zoneId);

我将总结我认为最相关的内容,我的日期选择器代码如下:

AltaEdicionCandidatos.xhtml

<p:panelGrid columns="4" layout="grid">
        
            <p:outputLabel for="fecha_envio" value="Fecha de envío:" />
            <p:datePicker id="fecha_envio" value="#{altaEdicionCandidato.candidato.fechaEnvio}" showIcon="true" locale="es"  pattern="dd/MM/yyyy" required="true">
                <p:ajax event="dateSelect" listener="#{altaEdicionCandidato.onFechaEnvioChange}" update="fecha_feedback" />
            </p:datePicker>
            
            <p:outputLabel for="fecha_feedback" value="Fecha de Feedback de solicitante:" />
            <p:datePicker id="fecha_feedback" value="#{altaEdicionCandidato.candidato.fechaFeedbackSolicitante}" showIcon="true" locale="es"  mindate="#{altaEdicionCandidato.fecFeedBackMinDate}" pattern="dd/MM/yyyy" required="#{altaEdicionCandidato.reqfechaFeedback}">
                <p:ajax event="dateSelect" listener="#{altaEdicionCandidato.onFechaFeedBackChange}" update="fecha_entrevista_ini" />
            </p:datePicker>
        </p:panelGrid>

AltaEdicionCandidato ManagedBean

@ManagedBean(name="altaEdicionCandidato") 
@ViewScoped public class AltaEdicionCandidato implements Serializable  {
private Candidato candidato;
private Date fecFeedBackMinDate;

public void onFechaEnvioChange(SelectEvent event)
    {
        this.fecFeedBackMinDate=((Date)event.getObject());
    }

...getters / setters
}        

As you can see the component fecha_feedback has as mindate the value fecFeedBackMinDate (of the type java.util.Date) of the managedbean altaEdicionCandidato, when selecting any date of the component, it throws the exception java.lang.UnsupportedOperationException exception.

ManagedBean 我只是把它作为参考,因为它甚至不运行。

调试过程,我看到它是在CalendarUtils.convertDate2ZonedDateTime 类中生成的以下行: return date.toInstant()。atZone (zoneId);

private static ZonedDateTime convertDate2ZonedDateTime (Date date, ZoneId zoneId) {
         if (date == null) {
             return null;
         }
         else {
             return date.toInstant (). atZone (zoneId);
         }
     }

我读过这是因为数据类型 java.util.Date 只有小时、分钟和秒,但它没有时区,因此会引发异常。

对该方法的调用从DatePicker类开始,它尝试使用getObjectAsLocalTime方法获取java.time.LocalTime类型的 minTime 变量。

protected ValidationResult validateTimeOnlyValue(FacesContext context, LocalTime time) {
        LocalTime minTime = CalendarUtils.getObjectAsLocalTime(context, this, getMindate());
        LocalTime maxTime = CalendarUtils.getObjectAsLocalTime(context, this, getMaxdate());
...

因为mindate的值是用getmindate方法获取的,所以一直无法知道它返回的是什么

最后,更罕见的是,在另一个视图中,您使用相同的机制和相同的组件和数据类型,也不例外。

AltaPosiciones.xhtml

<p:panel id="p_datos_generales" header="Datos Generales" stleClass="panelGridCenter" >
     </p:panel><p:panel id="p_sla" header="SLA"  stleClass="panelGridCenter" >
                <p:panelGrid >
                    <p:row>
                    <p:column>
                        <p:outputLabel for="fecha_asignacion" value="Fecha de Asignación:" /><br></br>
                        <p:datePicker id="fecha_asignacion" value="#{altaEdicionPosicionesBean.fechaAsignacion}" readonlyInput="true"  showIcon="true" disabled="#{!altaEdicionPosicionesBean.reqInfoSLA}" required="#{altaEdicionPosicionesBean.reqInfoSLA}" label="fecha_asignacion" locale="es"  pattern="dd/MM/yyyy" mindate="#{altaEdicionPosicionesBean.fecAsignacionMinDate}">
                            <p:ajax event="dateSelect" listener="#{altaEdicionPosicionesBean.onFechaAsignacionChange}" update="fec_comp_env_rec" />
                        </p:datePicker>
                    </p:column>
                   </p:row>
      </p:panelGrid>
</p:panel>

id 为fechaAsignacion的组件具有managedBean altaEdicionPosicionesBean 的变量 fecAsignacionMinDate 的值,它的类型为java.util.Date

我已经调试过了,它通过了相同的验证和提到的方法,但在这种情况下它不会抛出异常。

这是异常的一部分跟踪

 context - java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException: null
    at java.sql.Date.toInstant(Unknown Source) ~[?:1.8.0_231]
    at org.primefaces.util.CalendarUtils.convertDate2ZonedDateTime(CalendarUtils.java:422) ~[primefaces-8.0.jar:8.0]
    at org.primefaces.util.CalendarUtils.convertDate2LocalDate(CalendarUtils.java:435) ~[primefaces-8.0.jar:8.0]
    at org.primefaces.util.CalendarUtils.convertDate2LocalDate(CalendarUtils.java:427) ~[primefaces-8.0.jar:8.0]
    at org.primefaces.util.CalendarUtils.getObjectAsLocalDate(CalendarUtils.java:87) ~[primefaces-8.0.jar:8.0]
    at org.primefaces.component.datepicker.DatePicker.validateDateValue(DatePicker.java:215) ~[primefaces-8.0.jar:8.0]
    at org.primefaces.component.datepicker.DatePicker.validateDateValue(DatePicker.java:211) ~[primefaces-8.0.jar:8.0]
    at org.primefaces.component.datepicker.DatePicker.validateValueInternal(DatePicker.java:163) ~[primefaces-8.0.jar:8.0]
    at org.primefaces.component.datepicker.DatePicker.validateValue(DatePicker.java:126) ~[primefaces-8.0.jar:8.0]
    at javax.faces.component.UIInput.validate(UIInput.java:988) ~[jsf-api-2.2.20.jar:2.2]
    at org.primefaces.component.datepicker.DatePicker.validate(DatePicker.java:103) ~[primefaces-8.0.jar:8.0]
    at javax.faces.component.UIInput.executeValidate(UIInput.java:1270) ~[jsf-api-2.2.20.jar:2.2]
    at javax.faces.component.UIInput.processValidators(UIInput.java:714) ~[jsf-api-2.2.20.jar:2.2]
    at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:575) ~[jsf-impl-2.2.20.jar:2.2.20]
    at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183) ~[jsf-impl-2.2.20.jar:2.2.20]
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1689) ~[jsf-api-2.2.20.jar:2.2]
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) ~[jsf-api-2.2.20.jar:2.2]
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) ~[jsf-api-2.2.20.jar:2.2]
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) ~[jsf-api-2.2.20.jar:2.2]
    at javax.faces.component.UIForm.visitTree(UIForm.java:371) ~[jsf-api-2.2.20.jar:2.2]
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) ~[jsf-api-2.2.20.jar:2.2]
    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) ~[jsf-api-2.2.20.jar:2.2]
    at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:403) ~[jsf-impl-2.2.20.jar:2.2.20]
    at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:266) [jsf-impl-2.2.20.jar:2.2.20]
    at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:65) [primefaces-8.0.jar:8.0]
    at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1193) [jsf-api-2.2.20.jar:2.2]
    at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) [jsf-impl-2.2.20.jar:2.2.20]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.2.20.jar:2.2.20]
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) [jsf-impl-2.2.20.jar:2.2.20]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) [jsf-api-2.2.20.jar:2.2]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-websocket.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145) [prettyfaces-jsf2-3.3.3.jar:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:226) [rewrite-servlet-3.4.1.Final.jar:3.4.1.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:226) [rewrite-servlet-3.4.1.Final.jar:3.4.1.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:155) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130) [spring-boot-2.1.5.RELEASE.jar:2.1.5.RELEASE]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66) [spring-boot-2.1.5.RELEASE.jar:2.1.5.RELEASE]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:105) [spring-boot-2.1.5.RELEASE.jar:2.1.5.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123) [spring-boot-2.1.5.RELEASE.jar:2.1.5.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.36]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.36]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [catalina.jar:9.0.36]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [catalina.jar:9.0.36]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [catalina.jar:9.0.36]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [catalina.jar:9.0.36]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.36]
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) [catalina.jar:9.0.36]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [catalina.jar:9.0.36]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [catalina.jar:9.0.36]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) [tomcat-coyote.jar:9.0.36]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.36]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-coyote.jar:9.0.36]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-coyote.jar:9.0.36]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.36]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.36]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
[WARN ] 2020-07-24 17:17:27.918 [http-nio-8080-exec-3] lifecycle - java.lang.UnsupportedOperationException
javax.faces.FacesException: java.lang.UnsupportedOperationException
    

请,如果您能指导我了解为什么会发生这种情况,我将不胜感激。

预先非常感谢您。

标签: primefacesdatepickerjava.util.date

解决方案


我已经找到了造成这种情况的原因,在我的实体模型中,我没有注意到日期列有@Temporal(TemporalType.DATE)注释,我理解它被映射为java.sql.Date而不是java.util .Date,这就是为什么当您第一次直接从加载的对象加载并引用最小值时,它会标记错误。我删除了这些注释,它可以正常工作。谢谢大家的意见


推荐阅读