# JSF findet den Tag <f:metadata> nicht



## Millman (15. Jun 2010)

Habt ihr vll einen Tipp für mich?

Ich möchte den <f:metadata>-Tag in meiner xhtml Seite verwenden. Um diesen rum habe ich auch schon <f:view>, wobei das bei den Facelets ja eh nicht mehr nötig sein sollte.

Auf jeden Fall bekomm ich immer folgenden Fehler angezeigt, wenn ich auf die Seite gehe:
<f:metadata> Tag Library supports namespace: http://java.sun.com/jsf/core, but no tag was defined for name: metadata

Ich verwende JSF 2.0 mit Glassfish 3, somit sollte das Tag auch enthalten sein.


----------



## nocturne (17. Jun 2010)

Das tld der 1.x versionen wird zum parsen verwendet. Irgendwo fliegt eine jar oder META-INF's die alte tld rum.

Achtung: es gibt eine besondere facelets version für JSF2.

Für solche probleme gibt es maven.


----------



## Millman (5. Jul 2010)

Ich kann leider nirgends eine alte TLD finden, meine ganze WEBINf sieht so aus:

Web.xml:

```
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
    <param-value>true</param-value>
  </context-param>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>
      30
    </session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>faces/index.xhtml</welcome-file>
  </welcome-file-list>
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>
  <context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>DEFAULT</param-value>
  </context-param>
  <context-param>
    <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
    <param-value>com.sun.facelets.FaceletViewHandler</param-value>
  </context-param>
  <filter>
    <display-name>RichFaces Filter</display-name>
    <filter-name>richfaces</filter-name>
    <filter-class>org.ajax4jsf.Filter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>richfaces</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
  </filter-mapping>
</web-app>
```

Faces-config.xml:

```
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.0"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
    <application>
        <resource-bundle>
            <base-name>/Bundle</base-name>
            <var>bundle</var>
        </resource-bundle>
    </application>
</faces-config>
```

sun-web.xml:

```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<sun-web-app error-url="">
  <context-root>/TestProjekt</context-root>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</sun-web-app>
```

Manifest.MF:

```
Manifest-Version: 1.0
```


----------



## Millman (10. Jul 2010)

Kommt schon Leute, es muss doch irgendwo ein Fehler liegen :-(


----------



## Millman (17. Jul 2010)

Ich suche immer noch danach, wäre super falls sich das mal jemand genauer ansehen könnte....:-/

Ach ja und einen TagLibraryDescriptor gibts auch nirgendwo im Projekt, daran kann es also auch nicht liegen


----------



## Nogothrim (20. Jul 2010)

bin mir da nicht sicher, aber unterstützt JSF2 überhaupt noch JSP? Ich glaube Facelets sind der neue Standard. Nutze selber noch JSF 1.2 + Richfaces 3.3, daher hab ich noch keine Erfahrung mit JSF 2.x


----------



## JSFreak (29. Jul 2010)

JSF 2.0 unterstützt sehrwohl noch JSPs, allerdings wird von der Verwendung von JSPs abgeraten und Facelets empfohlen! Auch sind einige der neuen Funktionen von JSF 2.0 nicht in JSPs verfügbar, darunter zählt auch f:metadata!!!
In den Dokumentationen lassen sich die Unterschiede klar herauslesen!:
Tag-Doku für Facelets: http://java.sun.com/javaee/javaserverfaces/2.0/docs/pdldocs/facelets/index.html
Tag-Doku für JSPs: JSF 2.0 Page Decraration Language: JSP Variant
Damit ist auf lange Sicht gesehen eine Umstellung auf Facelets empfohlen und nötig, da diese auch sonst in Kombination mit JSF (siehe JSF-Lifecycle beispielsweise) viele Vorteile mitsich bringen!


----------

