MyFaces Tomahawk: Problem mit Tags

alois

Erfahrenes Mitglied
Siehe Nachtrag

Hallo zusammen,

ich bastel grade mit MyFaces (1.1.5), Tomahawk (1.1.3) und der schönen MyEclipseIDE (6.5) sowie dem Tomcat in Version 6.0.18.

Ich habe die Tomahawk Taglib wie im MyFaces-Wiki beschrieben in der web.xml eingebunden, MyFaces auch.

Nun funktionieren die standardmäßigen JSF-Funktionen (core/html/facelets) problemlos, nur die <t:document>-Tags von Tomahawk nicht; diese werden leider nicht interpretiert und stehen im Quelltext auch genauso wieder drin.
Das finde ich schade, denn damit sieht die Seite noch eine Spur aufgeräumter aus und es soll ja auch Performanz-Steigerungen geben.

Eine Seite mit eingebundenem Template sieht bei mir so aus:

HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<t:document xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:t="http://myfaces.apache.org/tomahawk" lang="en">
	<ui:composition template="/pages/templates/default_basic.xhtml">
	<f:view>
		<t:documentHead>
				<ui:define name="title">
					<title>Foo</title>
				</ui:define>
		</t:documentHead>
		<t:documentBody>
			<ui:define name="body">
				<body>
					<p>
					Start of application:&nbsp;
					<h:outputText value="${utilBean.dateOfStart}" />
					Current time:&nbsp;
					<h:outputText value="${utilBean.currentTime}" />
					Locale:&nbsp;
					<h:outputText value="${utilBean.locale}" />
					</p>
				</body>
			</ui:define>
		</t:documentBody>
		</ui:composition>
	</f:view>
</t:document>

Eclipse meckert bei der Validierung auch, dass die xmlns-Attribute in t:document nicht gültig wären... aber wo sollen die denn sonst stehen?

Hat jemand eine Ahnung was ich falsch mache?

Danke Euch!

Nachtrag:

Also nach einem clean im Projekt und einem neuen Deploy werden die Tags jetzt interpretiert, leider werden aber immer die Default-Werte des Templates angezeigt und nicht die mit <ui:define> erzeugten neuen Werte der richtigen Werte. Was mache ich noch falsch?
Die xmlns-Attribute im t:document-Tag werden auch noch als falsch angezeigt, das scheint aber ein Eclipse-Problem zu sein, da die Libraries glaube ich erst zur Laufzeit eingebunden werden...
 
Zuletzt bearbeitet:
Jetzt funktioniert es, ich hatte den Template-Mechanismus nicht ganz verstanden.

Das Deklarieren der Bereiche, in denen Inhalte erzeugt werden sollen, geschieht mit:

HTML:
<ui:insert name="foo" />

Dann wird in der Seite, die das Template einbinden soll, ein Viewport erstellt und mit

HTML:
<ui:composition template="/pages/templates/default_basic.xhtml">
			
<ui:define name="foo">Foo</ui:define>

</ui:composition>

der Inhalt definiert.
 

Neue Beiträge

Zurück