Tiles - JSF Problem

Status
Nicht offen für weitere Antworten.

nightpoet

Mitglied
Hallo zusammen

Seit drei Tagen schlage ich mit mit einem nervigen Tiles Problem herum.

Beim Aufruf einer Seite, welche durch das Tiles Framework aus mehreren JSF-Seiten zusammengesetzt werden soll, erhalte ich eine leere Seite als Response. Dabei werden durch den Server keinerlei Exceptions geworfen.

Hier die Konfiguration:

web-xml:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <display-name>PLEBSWebClient</display-name>
 
 <context-param>
  	<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  	<param-value>server</param-value>
 </context-param>
 
 <servlet>
  	<servlet-name>FacesServlet</servlet-name>
  	<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
 	<init-param>
  	 	<param-name>javax.faces.CONFIG_FILES</param-name>
   		<param-value>/WEB-INF/faces-config.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
 </servlet>
 
 <servlet>
  	<servlet-name>TilesServlet</servlet-name>
  	<servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
  	<init-param>
   		<param-name>definitions-config</param-name>
   		<param-value>/WEB-INF/tiles-defs.xml</param-value>
  	</init-param>
  	<init-param>
   		<param-name>definitions-parser-validate</param-name> 
   		<param-value>true</param-value> 
  	</init-param>
  	<load-on-startup>2</load-on-startup>
 </servlet>
 
 <servlet-mapping>
  	<servlet-name>FacesServlet</servlet-name>
  	<url-pattern>*.faces</url-pattern>
 </servlet-mapping>
 
 <welcome-file-list>
  	<welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 
 <error-page>
  	<error-code>404</error-code>
  	<location>/views/404.jsp</location>
 </error-page>
 
 <error-page>
  <error-code>403</error-code>
  <location>/views/403.jsp</location>
 </error-page> 
</web-app>

Der Auszug aus der tiles-defs.xml, welcher die entsprechende Definition erzeugt sieht so aus:

Code:
<definition name="plebs.mainLayout" path="views/tiles/layout.jsp">
		<put name="header" value="views/tiles/header.jsp"/>
		<put name="topmenu" value="views/tiles/empty.jsp"/>	
		<put name="leftmenu" value="views/tiles/leftmenu.jsp"/>	
		<put name="messagefield" value="views/tiles/messagefield.jsp"/>
		<put name="footer" value="views/tiles/footer.jsp"/>
		<put name="body1" value="views/tiles/empty.jsp"/>	
		<put name="body2" value="views/tiles/empty.jsp"/>	
		<put name="contextmenu" value="views/tiles/empty.jsp"/>	
	</definition>	
	
	<definition name="plebs.welcome" extends="plebs.mainLayout">
		<put name="body1" value="views/tiles/welcome.jsp"/>
		<put name="body2" value="views/tiles/gameSelection.jsp"/>			
	</definition>


Die Layout Datei bindet die Tiles Inserts über subview oder verbatim Tags in den JSF Komponentenbaum ein:


Code:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>   

 
<div class="mainmenucontainer">				
      	<f:subview id="leftmenu">
		<tiles:insert attribute="leftmenu" flush="false"></tiles:insert>
	</f:subview>
</div>
				
<div class="maincontainer">	
			
	<div class="headercontainer">
		<f:subview id="header">						
			<tiles:insert attribute="header" flush="false"></tiles:insert>
		</f:subview>
	</div>
					
	<div class="submenucontainer">
		<f:subview id="topmenu">	
			<tiles:insert attribute="topmenu" flush="false"></tiles:insert>
		</f:subview>
	</div>		
					
	<div class="contentcontainer">
		<f:verbatim>
			<tiles:insert attribute="body1" flush="false"></tiles:insert>
		</f:verbatim>
						
		<f:verbatim>
			<tiles:insert attribute="body2" flush="false"></tiles:insert>
		</f:verbatim>
	</div>
					
	<div class="messagefield">
		<f:verbatim>
			<tiles:insert attribute="messagefield" flush="false"></tiles:insert>
		</f:verbatim>
	</div>
					
	<div class="contextmenucontainer">
		<f:verbatim>
			<tiles:insert attribute="contextmenu" flush="false"></tiles:insert>
		</f:verbatim>
	</div>
					
	<div = class="footercontainer">
		<f:subview id="footer">
			<tiles:insert attribute="footer" flush="false"></tiles:insert>
		</f:subview>
	</div>
</div>

Hier ist die aufgerufene Seite, welche lediglich die einleitenden HTML und JSF-Tags enthält und die Tiels Definition in den Body einbindet:

Code:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>  

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>  
	<f:view>
		<head>	    
	    	<title>PLEBS</title>
	    
	    	<meta http-equiv="expires" content="0">
	    	<meta http-equiv="pragma" content="no-cache">
	    	<meta http-equiv="cache-control" content="no-cache">   
	    	<meta http-equiv="keywords" content="">
	    	<meta http-equiv="description" content="PLEBS - Platform for Educational Business Simulations">
		</head>
	
		<link rel="stylesheet" type="text/css" href="/css/styles.css">
			
		<link rel="javascript" type="text/javascript" href="/script/functions.js">			
		
		<body>
			<f:subview id="pagecontainer">
				<tiles:insert definition="plebs.welcome" flush="false"/>
			</f:subview>				
		</body>
	</f:view>
</html>

Der Aufruf erfolgt über den folgenden Redirect aus der Seite index.jsp:

Code:
<%@ page session="false" language="java" contentType="text/html; charset=ISO-8859-1"%>
	<% response.sendRedirect("views/welcome.faces"); %>

Die JSF-Konfiguration läuft für eine Seite, welche lediglich JSF-Tags verwendet einwandfrei. Umgekehrt habe ich die Tiles-Konfiguration getestet, indem ich eine Testdefinition verwendet habe, welche ausser der leeren JSP-Seite nur eine einfache Textseite ohne JSF verwendet. Auch hier wird nur der umgebende HTML-Code ausgegeben, der Insert an sich jedoch nicht mehr ausgeführt. Das Problem scheint demnach hauptsächlich mit der Tiles-Konfiguration zusammenzuhängen.

Hat vielleicht jemand eine Idee, woran das liegen könnte oder ähnliche Erfahrungen?
 

kleiner_held

Top Contributor
Tiles und JSF zu kombinieren ist leider keine triviale Sache, ich habe damit auch einen ganze Weile gekaempft, bis ich eine akzeptable Loesung hatte.
Ich verwende Apache MyFaces in Verbindung mit Tiles, eine Anleitung dazu gibt es unter
wiki.apache.org/myfaces/Tiles_and_JSF

Ansosten enthaelt meine Layout Datei die globale jsf view mit tiles insert Anweisungen
Code:
<f:view>  
...
<tiles:insert attribute="menu" flush="false"/>
...
</f:view>
und die einzufuegenden JSP Dateien definieren jeweils eine subview oder enthalten gar keine JSF spezifischen Tags.
Code:
<f:subview id="menu">
...
</f:subview>
 

freez

Top Contributor
Ja, ich habe auch so meine Erfahrungen mit Tiles und JSF gemacht. Ich hatte das lustige Phänomen das ich ein Projekt erstellt hatte, da trat das gleiche Problem wie bei dir auf und dann habe ich ein neues Projekt in MyEclipseIDE erstellt und genau die gleichen Schritte gemacht (sogar Codeschnipsel mit dem alten Projekt ausgetauscht). Und es ging.

Ich habe ein PDF erstellt, welches du dort:

www.java-forum.org/de/viewtopic.php?p=278964&highlight=#278964
finden kannst. Wenn du MyEclipseIDE verwendest kannst du das Beispiel mal nachstellen und kommst vielleicht darauf, woran es hängt.

Ansonsten fällt mir auf den ersten Blick nicht auf, woran es hacken könnte.
 

nightpoet

Mitglied
Hallo zusammen

Danke für die Hilfe

Habe das Problem nun mit Facelets gelöst und es klappte nahezu auf anhieb!

Viele Grüße,
Christian
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Problem mit Struts und tiles Allgemeines EE 4
R Tiles - Layout-Problem wegen Leerzeichen Allgemeines EE 6
F MyFaces und Tiles: <tiles:insert> wird nicht erkannt Allgemeines EE 10
G JSF und Tiles Allgemeines EE 14
T JSF, Tiles und normales HTML in <f:verbatim> Tags? Allgemeines EE 2
D Tiles VS Frames Allgemeines EE 17
B multiple tiles definition Allgemeines EE 2
D Problem mit Update von ApacheHttpClient von 5.2 auf 5.3 Allgemeines EE 10
D Problem mit redundanten Servern Allgemeines EE 7
Azemaria JSF: Problem bei der einfachsten Applikation Allgemeines EE 2
P JPA Internal Problem Nullpointer Allgemeines EE 10
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
M Glassfish Deployment-Problem unter Eclipse Allgemeines EE 0
B Problem beim Lesen des Codes... Allgemeines EE 2
R JPA Problem beim Speichern eines Users Allgemeines EE 2
S WebSocket Problem Allgemeines EE 0
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
Raidri [SEAM] rich:dataTable sortBy Problem Allgemeines EE 6
T Problem mit den Beispielen von Apache Allgemeines EE 5
W JSF Validator Problem HTTP Status 500 Allgemeines EE 2
E JBoss 7.1 Datasource Problem Allgemeines EE 2
M JSP Problem -unbestimmte Anzahl von Werten Transportieren Allgemeines EE 9
S Problem mit EJB Verständnis Allgemeines EE 4
B Problem beim einbinden einer CSS in eine JSP Allgemeines EE 8
F JSP Problem mit Datenbankanbindung über Glassfishserver Allgemeines EE 4
S java Entities Problem Allgemeines EE 19
S Embedded JBoss Problem beim Deployment Allgemeines EE 4
E Session Problem Allgemeines EE 9
F problem mit nullpointer bei DB zugriff Allgemeines EE 2
A Erste Schritte... Problem mit Hibernate Allgemeines EE 15
ruutaiokwu jboss problem - work-verzeichnis muss manuell gelöscht werden??? Allgemeines EE 5
Stillmatic sendRedirect Problem! Allgemeines EE 3
M Problem mit Lookup auf EJB3 mit Glassfish Allgemeines EE 11
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
X JBoss InitialContext problem Allgemeines EE 5
LordZed Problem mit dem einbinden von Bibliotheken, die sich gegenseitig verwenden Allgemeines EE 5
H GWT Problem beim Ausführen Allgemeines EE 8
Q Problem mit JMS und Weblogic 10 Allgemeines EE 5
E Performance-Problem beim ersten Request Allgemeines EE 4
G Multi User Problem Allgemeines EE 8
G Datasource Problem Allgemeines EE 1
J OOP Java Array Problem Allgemeines EE 2
T Problem mit Java Transaction API Allgemeines EE 2
D Problem mit EJB: Bean soll Objekt eigener Klasse zurückgeben Allgemeines EE 2
N JavaMail Problem Allgemeines EE 4
N JBoss Problem mit Bibliothek in unterschiedlichen Versionen Allgemeines EE 2
A Tomcat -- JSP: komisches Problem Allgemeines EE 11
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
B Problem mit ActionListener Allgemeines EE 13
G Simples JSF-Projekt in Eclipse - Problem Allgemeines EE 9
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
J Problem mit EJB Aufruf und DualCore Rechner Allgemeines EE 4
J ejb3.0 datenbank problem Allgemeines EE 2
J Problem mit Zurück-Button Allgemeines EE 2
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
J problem mit jsp/js Allgemeines EE 2
B Help - EJB2 - Problem mit Hybernate und "LIMIT" Allgemeines EE 6
B JSTL Problem Allgemeines EE 8
byte Tomcat Deployment Problem (HTTP Status 503) Allgemeines EE 8
S Problem mit t:selectOneRadio und ValueChangeListener Allgemeines EE 2
B Problem mit JBoss-4.2.1.GA Allgemeines EE 8
M JSF & EJB "Bean not bound" Problem Allgemeines EE 4
V MYSQL JDBC;java.lang.ClassNotFoundException; Problem Eclipse Allgemeines EE 3
megachucky JMS - Problem mit TemporaryQueue Allgemeines EE 2
G Problem mit MimeType/ContentType Allgemeines EE 4
E Java Mail problem Allgemeines EE 5
Y XFire - Maven Build Problem Allgemeines EE 2
D JSP Problem mit equals? Allgemeines EE 2
A Eclipse Start-Problem Allgemeines EE 5
S JSF - Custom converter Problem Allgemeines EE 3
Y JSF Uhrzeitausgabe Problem Allgemeines EE 4
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
Y JSF - rendered Problem Allgemeines EE 1
D Servlet Problem über Server Allgemeines EE 26
Zed JSF h:inputText h:outputText update Problem Allgemeines EE 2
K mysql treiber problem wenn import java.sql.* bei _servlet_ Allgemeines EE 2
S JDBC Mysql Connection Problem - datasource null Allgemeines EE 3
T Session-Problem Allgemeines EE 2
G Tomcat / Eclipse oder Web.xml Problem Allgemeines EE 11
S Netbeans 5.5 Visual Web Pack Problem mit INSERT und PK Allgemeines EE 4
D JSF Problem mit Action Allgemeines EE 2
F Klassen und zugriffs Problem "Help wanted"! Allgemeines EE 16
D <input type="file"> Problem Allgemeines EE 6
N Struts - Problem mit <html:link> Action Allgemeines EE 3
A Problem / Fehler beim Einbinden einer Klasse in ein JSP Allgemeines EE 20
G Session Problem Allgemeines EE 5
T Ant Compiler Problem Allgemeines EE 9
T Problem dem Zaehler in mein Java - Code Allgemeines EE 2
A Hibernate-Problem mit MySQL-Cluster Allgemeines EE 6
H Servlet problem Allgemeines EE 10
G Problem mit Benutzerverwaltung Allgemeines EE 3
S Hibernate Mapping Problem Allgemeines EE 3
S Hibernate INSERT Problem Allgemeines EE 11
S Dummes JSP-Problem Allgemeines EE 8
P EJB-Installations-Problem Allgemeines EE 4
S CSS Problem in JSP Allgemeines EE 16
C Problem mit html:optionsCollection Allgemeines EE 4
R HILFE: Problem mit JSF examples Allgemeines EE 10
R Problem mit value-expression Allgemeines EE 7

Ähnliche Java Themen

Neue Themen


Oben