2012-11-29 7 views
5

Sto testando l'esempio PrimeFaces disponibile allo https://www.primefaces.org/showcase/ui/overlay/dialog/loginDemo.xhtml. Ho correttamente importato primefaces e JSF 2.1 nel progetto web Eclipse Dyamic, ma ottengo il seguente errore durante l'avvio del sito (con Tomcat):Libreria tag supporta lo spazio dei nomi: http://java.sun.com/jsf/html, ma non è stato definito alcun tag per nome: facet

javax.faces.view.facelets.TagException: /login.xhtml at line 30 and column 36 <f:facet> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: facet 
     org.apache.myfaces.view.facelets.compiler.CompilationManager.pushTag(CompilationManager.java:282) 
     org.apache.myfaces.view.facelets.compiler.SAXCompiler$CompilationHandler.startElement(SAXCompiler.java:250) 
     com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506) 
     com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:745) 
     com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376) 
     com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717) 
     com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) 
     com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) 
     com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) 
     com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) 
     com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 
     com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) 
     com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210) 
     com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568) 
     com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302) 
     javax.xml.parsers.SAXParser.parse(SAXParser.java:195) 
     org.apache.myfaces.view.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:739) 
     org.apache.myfaces.view.facelets.compiler.Compiler.compile(Compiler.java:128) 
     org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory._createFacelet(DefaultFaceletFactory.java:300) 
     org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.access$000(DefaultFaceletFactory.java:53) 
     org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:114) 
     org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:111) 
     org.apache.myfaces.view.facelets.impl.FaceletCacheImpl.getFacelet(FaceletCacheImpl.java:83) 
     org.apache.myfaces.view.facelets.impl.FaceletCacheImpl.getFacelet(FaceletCacheImpl.java:50) 
     org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:199) 
     org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:182) 
     org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._getFacelet(FaceletViewDeclarationLanguage.java:2622) 
     org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:452) 
     org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:78) 
     org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) 
     javax.faces.webapp.FacesServlet.service(FacesServlet.java:199) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.21 logs. 

Il LoginBean.java contiene:

package classi; 
import java.awt.event.ActionEvent; 

import javax.faces.application.FacesMessage; 
import javax.faces.context.FacesContext; 

import org.primefaces.context.RequestContext; 
public class LoginBean 
{ 
    private String username; 

    private String password; 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public void login(ActionEvent actionEvent) { 
     RequestContext context = RequestContext.getCurrentInstance(); 
     FacesMessage msg = null; 
     boolean loggedIn = false; 

     if(username != null &&/*&&*/ username.equals("admin") && password != null && password.equals("admin")) { 
      loggedIn = true; 
      msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", username); 
     } else { 
      loggedIn = false; 
      msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "Invalid credentials"); 
     } 

     FacesContext.getCurrentInstance().addMessage(null, msg); 
     context.addCallbackParam("loggedIn", loggedIn); 
    } 
} 

login. xhtml contiene:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/html" 
xmlns:p="http://primefaces.org/ui"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Insert title here</title> 
</head> 
<body> 
<h:outputLink id="loginLink" value="javascript:void(0)" onclick="dlg.show()" title="login">  
    <p:graphicImage value="/images/login.png" /> 
</h:outputLink> 

<p:growl id="growl" showDetail="true" life="3000" /> 

<p:dialog id="dialog" header="Login" widgetVar="dlg"> 
    <h:form> 

     <h:panelGrid columns="2" cellpadding="5"> 
      <h:outputLabel for="username" value="Username:" /> 
      <p:inputText value="#{loginBean.username}" 
        id="username" required="true" label="username" /> 

      <h:outputLabel for="password" value="Password:" /> 
      <h:inputSecret value="#{loginBean.password}" 
        id="password" required="true" label="password" /> 

      <f:facet name="footer"> 
       <p:commandButton id="loginButton" value="Login" update=":growl" 
        actionListener="#{loginBean.login}" 
        oncomplete="handleLoginRequest(xhr, status, args)"/> 
      </f:facet> 

     </h:panelGrid> 

    </h:form> 
</p:dialog> 

<script type="text/javascript"> 
    function handleLoginRequest(xhr, status, args) { 
     if(args.validationFailed || !args.loggedIn) { 
      jQuery('#dialog').effect("shake", { times:3 }, 100); 
     } else { 
      dlg.hide(); 
      jQuery('#loginLink').fadeOut(); 
     } 
    } 
</script> 
</body> 
</html> 

risposta

6

tenta di modificare xmlns:f="http://java.sun.com/jsf/html"-xmlns:f="http://java.sun.com/jsf/core">

+0

grazie !!!!!! Funziona –

Problemi correlati