# Tiles - Layout-Problem wegen Leerzeichen



## Rumborak (6. Mrz 2007)

Hallo zusammen!

Kann man eigentlich irgendwie verhindern, dass Struts bei der Verwendung von Tiles immer so viele Leerräume lässt?

Wenn ich mit <tiles:insert attribute="..."/> mein Layout zusammen bastle, macht vor allem der Internet Explorer probleme aber auch der Opera-Browser. Ich hätte gerne ein pixelgenaues Layout ohne überflüssige Whitespaces. Geht das mit Struts überhaupt?

Danke schonmal!


----------



## HaBaLeS (7. Mrz 2007)

Falls du nicht gezwungen bist Tiles zu verwenden würde ich dir empfehlen Sitemesh zu verwenden, das ist wesentlich kompfortabler als Tiles.

Zu deinem Eigentlichen Problem:

Es sollte eigentlich problemlos möglich sein HTML so zu schreiben, das es Pixelgenau ist, selbst wenn seitenweise Leerzeichen drin sind.


----------



## Rumborak (7. Mrz 2007)

Danke erstmal für die Antwort!

Zu Deiner Aussage


> Es sollte eigentlich problemlos möglich sein HTML so zu schreiben, das es Pixelgenau ist, selbst wenn seitenweise Leerzeichen drin sind.



HTML ist nicht das Problem - mein HTML-Prototyp funktioniert perfekt. Jetzt steckt ja hinter jeder eingebundenen "Tile" eine JSP-Seite. Aus irgend einem Grund werden da halt grundsätzlich mehrere Leerzeilen ins Layout-Template eingefügt an der Stelle, wo das <tiles:insert /> steht. Mein HTML-Code funktioniert aber nur dann verlässlich, wenn an bestimmten Stellen eben keine Leerräume enthalten sind.

Firefox hat damit kein Problem - nur Internet Explorer und Opera. Ältere Browser wahrscheinlich ja dann auch...


----------



## HaBaLeS (7. Mrz 2007)

Ich hab mir mal eine ältere Implementierung von uns mit Tiles angeschaut. Wir haben da auch größere blöcke Leerzeichen im Code.  Das scheint eine eigenart von Tiles zu sein. Vielleicht soll das der Übersichtlichkeit dienen. Mit etwas glück findest du vielleicht in der API eine Option das zu unterbinden. 

Einenen Workarround den ich mir vorstellen kann ist ein Filter, den du nach dem Tiles Filter laufen lässt der der alle whitespaces zwischen "/>   <" entfernst. Aber das ist eher ein performance fressender Hack. 

Oder du arbeitest einfach noch ein bisschen an deinem HTML, das es auch mit Leerzeichen auf allen Browsern läuft.


----------



## KSG9|sebastian (7. Mrz 2007)

Ähm..also auch wenn ich im Internet Explorer 1000 Leerzeichen hintereinander mache wird nur eines angezeigt, höchstens man verwende  . Von dem her weiß ich nicht so recht was du genau mit Lerrräumen meinst, kannst mal das erzeugte HTML zeigen?


----------



## HaBaLeS (7. Mrz 2007)

Ich denke es geht eher darum, das diese whitespaces portenzielle linebreaks darstellen. und nicht, das Leerzeichen dargestellt werden. Ich kenne das Problem, das man dadurch Verschiebungen im Layout bekommen kann.  Aber das lässt isch meist durch Optiemierungen im HTML Code in den griff bekommen. 

Gerade wenn man soetwas wie Tiles verwendet, sollte man nur kompette HTMLfragmente (z.B. komplette Tabellen) in ein Tile auslagern, ansonstem bekommt man über kurz oder lang ganz andere Probleme als "nur" zu viele Leerzeichen.


----------



## Rumborak (8. Mrz 2007)

Danke nochmals für die vielen Antworten!

Ich habe nochmal gesucht und einen Filter zum Entfernen von Leerzeilen gefunden.

Damit lassen sich die vielen unnützen Leerzeilen ganz einfach aus dem HTML-Quellcode entfernen!   

Mein Layout-Problem hatte allerdings eine andere Ursache - ein externes CSS wurde nicht eingebunden.


----------

