I'm using JSF 2 and PrimeFaces 5.1
In my page when occur a onchange="submit()" the display an error. Show us part of my codes:
PAGE
Code: Select all
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui" >
<!-- <p:menuitem value="Cadastros" icon="ui-icon-circle-plus" url="cadastros.jsf" rendered="#{usuarioAnalistaBean.acessoMenuAD}" style="font-size:16px;" />-->
<h:head>
<title>Testando Notificação</title>
<link type="text/css" rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/estilos.css" />
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="center" header="NOTIFICANDO O EVENTO" id="centro1" >
<div class="logo"><h:graphicImage value="/imagens/logo_p.jpg" styleClass="formCadastro"/></div>
<h:form id="cadastroGD" prependId="false" styleClass="formCadastro">
<p:growl id="msgs" showDetail="true"/>
<h:panelGrid columns="1">
<p:outputLabel value="NOTIFICADOR" for="notificador"/>
<p:selectOneMenu id="notificador" value="#{notificacao.notificadorVO}" update=":cadastroGD"
required="true" requiredMessage="É obrigatório informar a Área notificadora.">
<f:selectItem itemValue="" itemLabel="Selecione..."/>
<f:selectItems value="#{notificacao.listaArea}" var="areaNotificadora"
itemLabel="#{areaNotificadora.nome}" itemValue="#{areaNotificadora}"/>
</p:selectOneMenu>
</h:panelGrid>
<br/>
<h:panelGrid columns="1">
<p:outputLabel value="NOTIFICADO" for="notificado"/>
<p:selectOneMenu id="notificado" value="#{notificacao.notificadoVO}" update=":cadastroGD"
required="true" requiredMessage="É obrigatório informar a Área notificada.">
<f:selectItem itemValue="" itemLabel="Selecione..."/>
<f:selectItems value="#{notificacao.listaArea}" var="areaNotificada"
itemLabel="#{areaNotificada.nome}" itemValue="#{areaNotificada}"/>
</p:selectOneMenu>
</h:panelGrid>
<br/>
<h:panelGrid columns="2" cellpadding="5">
<p:outputLabel for="dataOcorrencia" value="DATA E HORA OCORRÊNCIA:"/>
<p:calendar id="dataOcorrencia" value="#{notificacao.dataTela}" required="true" pattern="dd/MM/yyyy HH:mm"
requiredMessage="É obrigaório informar a data da Ocorrência" effect="fold"
mask="99/99/9999 99:99" locale="pt" maxdate="#{notificacao.dataMaxima()}" placeholder="Clique aqui para selecionar a data.">
<p:ajax event="dateSelect" listener="#{notificacao.validaDataOcorrencia()}" update="msgs" />
</p:calendar>
</h:panelGrid>
<br/>
<p:outputLabel for="classificacao" value="Classificação do Evento:" />
<h:panelGrid columns="2" cellpadding="15">
<h:panelGroup>
<p:selectOneRadio id="classificacao" value="#{notificacao.eventoObrigatorio}" layout="grid" columns="1"
required="true" requiredMessage="É obrigatório informar a CLASSIFICAÇÃO"
onchange="submit()" valueChangeListener="#{notificacao.eventoSelecionado}" immediate="true">
<f:selectItems value="#{notificacao.listaEventoObrigatorio}" var="eventoObrigatorio"
itemLabel="#{eventoObrigatorio.descricao}" itemValue="#{eventoObrigatorio.id}"/>
<f:selectItem itemLabel="Outro" itemValue="0" />
</p:selectOneRadio>
<p:inputText value="#{notificacao.eventoObrigatorio}" size="30"
rendered="#{notificacao.classificacao}" placeholder="Descreva aqui outra classificação."/>
</h:panelGroup>
</h:panelGrid>
<br/>
Code: Select all
public String getDataTela() {
return dataTela;
}
public void setDataTela(String dataTela) throws ParseException {
SimpleDateFormat dataHora = new SimpleDateFormat("dd/MM/yyyy HH:mm");
SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
Date parsedDate = sdf.parse(dataTela);
String dataTelaHoraMin = dataHora.format(parsedDate);
this.dataTela = dataTelaHoraMin;
}
public void onDateSelect(SelectEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Date Selected", format.format((Date)event.getObject())));
public void eventoSelecionado(ValueChangeEvent event ){
Object value = event.getNewValue();
int select = Integer.parseInt(value.toString());
if(select == 0){
classificacao = true;
}else {
classificacao = false;
}
}
public String validaDataOcorrencia() throws ParseException{
if(dataTela != null){
SimpleDateFormat dataHora = new SimpleDateFormat("dd/MM/yyyy HH:mm");
SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
// Date parsedDate = sdf.parse(dataTela);
//
// String dataTelaHoraMin = dataHora.format(parsedDate);
Date dataTelaCompare = dataHora.parse(dataTela);//dataHora.parse(dataTelaHoraMin);
Date dataLimiteCompare = dataHora.parse(dataLimite);
FacesContext facesContext = FacesContext.getCurrentInstance();
if(dataLimiteCompare.after(dataTelaCompare) || dataLimiteCompare.equals(dataTelaCompare)){
facesContext.addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "Data e hora da ocorrência selecionada nos conformes",
"Data e hora informada: " +dataTela+".")); //+dataTelaHoraMin+
return null;
}else {
facesContext.addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "A data e hora selecionada não pode ser maior que a data e hora atual.",
"A data hora informada: " +dataTela+" é superior a data Limite é: "+dataLimite+".")); //+dataTelaHoraMin+
return null;
}
}
return null;
}
}
Cannot format given Object as a Date
Code: Select all
java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(Unknown Source)
at java.text.Format.format(Unknown Source)
at org.primefaces.component.calendar.CalendarUtils.getValueAsString(CalendarUtils.java:60)
at org.primefaces.component.calendar.CalendarRenderer.encodeEnd(CalendarRenderer.java:60)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:79)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:66)
at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:49)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)