Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao usar validateDoubleRange [1]

Oi Pessoal,

Tentei usar o validateDoubleRange, mas a página livro.html apresentou o seguinte erro ao ser recarregada:

HTTP Status 500 – Internal Server Error
Type Exception Report

Message /livro.xhtml @74,61 <f:validateDoubleRange> Parent not an instance of EditableValueHolder: javax.faces.component.html.HtmlOutputText@5b69ec6

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

javax.servlet.ServletException: /livro.xhtml @74,61 <f:validateDoubleRange> Parent not an instance of EditableValueHolder: javax.faces.component.html.HtmlOutputText@5b69ec6
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

javax.faces.view.facelets.TagException: /livro.xhtml @74,61 <f:validateDoubleRange> Parent not an instance of EditableValueHolder: javax.faces.component.html.HtmlOutputText@5b69ec6
    com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.applyNested(ValidatorTagHandlerDelegateImpl.java:222)
    com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.apply(ValidatorTagHandlerDelegateImpl.java:87)
    javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:196)
    javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:196)
    javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:196)
    javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
    com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:196)
    javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
    com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
    com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
    com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:164)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:870)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.

Apache Tomcat/8.5.

===================================

CONTINUA NO TÓPICO SEGUINTE

4 respostas

Oi Ana Sua tag html está importando o JSF core?

Exemplo:

<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      >

Parece ser algum problema com o import da tag <f:validateDoubleRange>

Oi Otávio,

Eu conferi os import está tudo certinho. Troquei a versão da biblioteca de javax.faces-2.1.0 para javax.faces-2.2.0, e mesmo assim o erro persiste. Não sei mais o que pode ser.

solução!

Ana,

O problema está nesse trecho:

<h:outputText value="#{livro.preco}">
            <f:validateDoubleRange minimum="1.0" maximum="1000.00" />
            <f:convertNumber type="currency" pattern="R$ #0.00"
                currencySymbol="R$" locale="pt_BR" />
        </h:outputText>

O f:validateDoubleRange não pode ir dentro de uma tag h:outputText, ele valida sempre a entrada e por isso deve ser utilizado somente em um h:inputText

Oi Otávio,

Ahhh! Por isso que ele estava funcionando no formulário, e não estava funcionando nesse trecho que eu coloquei.

Obrigada pelo esclarecimento!!!!