1
resposta

org.primefaces.expression.ComponentNotFoundException

Boa tarde, Meu codigo não está achando o componente de expressão "@form" podem me ajudar? Eu ja pesquisei e não encontrei o motivo X da questão.

<!DOCTYPE html todos eles>
   <h:head>   
      <title>Login</title>      
      <!-- Compiled and minified CSS -->
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css"/>
      <!--Import jQuery before materialize.js-->
      <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
      <!-- Compiled and minified JavaScript -->
      <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
      <h:outputStylesheet library="css" name="sweetalert.css" />
      <h:outputScript library="js" name="sweetalert.min.js" />
   </h:head>

   <h:body styleClass="cyan lighten-22" style="background-color: white">
      <div class="valign-wrapper" id="login-page">
         <div class="container">
            <div class="center-align">
               <img class="responsive-img" style="width=45px; height=45px;" src="http://lisboa/gfxWebSeguranca/templates/logo_login.png" />
               <br />
               <div class="row" style="color: #24292E" >
                  <div class="col s6 offset-s3" align="center">
                     <div class="card">
                        <div class="card-content">
                           <div class="left-align">
                              <h:form id="login">
                                 <p:growl autoUpdate="true" />

                                 <div class="row">                                 
                                    <div class="col s12 input-field">
                                       <h:inputText id="email" value="#{loginBean.usuario.email}" required="true" requiredMessage="Usuário é necessário">
                                          <f:passThroughAttribute name="type" value="email" />
                                       </h:inputText>
                                       <h:outputLabel for="email" value="Usuário:" />
                                    </div>

                                    <div class="col s12 input-field">
                                       <h:inputSecret id="senha" value="#{loginBean.usuario.senha}" feedback="true" required="true" 
                                          requiredMessage="Informe uma senha"  />
                                       <h:outputLabel for="senha" value="Senha:" />
                                    </div>

                                    <div class="col s12 input-field">
                                       <p:commandButton value="Entrar" styleClass="btn btn-large" action="#{loginBean.efetuaLogin}" update="@form" process="@form" />
                                    </div>                                    
                                 </div>

                              </h:form>
                           </div>
                        </div>
                     </div>
                  </div>
               </div>
            </div>
         </div>
      </div>
      <script>
         $(document).on("ready",function(){
             $('login-page').css({'height': window.innerHeight + 'px'});
         });

      </script>              
   </h:body>

</html>

Erro:

mar 26, 2018 4:06:47 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/login.xhtml]
org.primefaces.expression.ComponentNotFoundException: Cannot find component for expression "@form" referenced from "j_idt4".
    at org.primefaces.expression.SearchExpressionFacade.cannotFindComponent(SearchExpressionFacade.java:702)
1 resposta

Oi Rafael,

Estranho esse erro, pois o código está certinho.

Faz o seguinte, posta aqui como está a declaração das taglibs na sua página.

Seria assim ?

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui">