JSF JSP, Facelets und einbinden einer js-Datei

  • Themenstarter Themenstarter Moinuell
  • Beginndatum Beginndatum
M

Moinuell

Gast
Hallo,

ich arbeite mich gerade in JSF ein.
Ich verwende JSF 2.0
Tomcat 7


Ich möchte mein .js-Datei in meine Seite einfügen um den Code nutzen zu können.

Dazu habe ich folgendes versucht (Siehe unten).

Funktioniert nur leider nicht, da er das Tag nicht kennt.
Kann mir jemand sagen, woran das liegen könnte?




Hier der Code:
Java:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
               <h:outputStylesheet library="css" name="styles.css"  />
               <h:outputScript library="js" name="common.js" />
</html>

Fehler:
org.apache.myfaces.view.jsp.FaceletsOnlyException: The tag h😱utputStylesheet is only available on facelets.

Caused by:
org.apache.jasper.JasperException - /welcome.jsp (line: 17, column: 15) No tag "outputStylesheet" defined in tag library imported with prefix "h"


Java:
Schwerwiegend: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /welcome.jsp (line: 17, column: 15) No tag "outputStylesheet" defined in tag library imported with prefix "h"
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:199)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1215)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452)
	at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1664)
	at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1002)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1274)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:690)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:477)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:368)
	at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:94)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:66)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Sep 01, 2012 11:26:23 PM org.apache.myfaces.renderkit.ErrorPageWriter handleThrowable
Schwerwiegend: An exception occurred
javax.faces.FacesException: org.apache.myfaces.view.jsp.FaceletsOnlyException: The tag h:outputStylesheet is only available on facelets.
	at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)
	at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.myfaces.view.jsp.FaceletsOnlyException: The tag h:outputStylesheet is only available on facelets.
	at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:133)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:66)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
	... 20 more
Caused by: org.apache.jasper.JasperException: /welcome.jsp (line: 17, column: 15) No tag "outputStylesheet" defined in tag library imported with prefix "h"
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:199)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1215)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452)
	at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1664)
	at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1002)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1274)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:690)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:477)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:368)
	at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:94)
	... 22 more
 
Ich will meinem Vorposter nicht wiedersprechen, die Aussage ist absolut richtig. Ich will nur mal genauer werden:


Das hier ist JSP:
Code:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

JSP ist total veraltet und hat mit JSF nicht mehr wirklich viel zu tun.

Das hier ist xhtml und JSF:
Code:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
               <h:outputStylesheet library="css" name="styles.css"  />
               <h:outputScript library="js" name="common.js" />

Du hast also das richtige und das flasche genommen oder : JSF und JSP gemischt.
Dein Fehler ist kein Fehler. Du bist nur auf die Uhralt-Tutorials im Netz reingefallen und bist total verwirrt, weil viele die auch "aktuelle" tutorials ins netz stellen immernoch mit JSP's arbeiten was total daneben ist.

Wenn du Englisch kannst benutze bitte dieses Tutorial:

JSF 2.0 Tutorial

Auf deutsch ist dieses hier zu empfehlen:

JSFAtWork, JSF 2.0 und Apache MyFaces

und als Buch empfehle ich dir:

JavaServer Faces 2.0 &mdash; Ein Arbeitsbuch fr die Praxis
 

Neue Themen


Zurück
Oben