JSF JavaScript Probleme zwischen Tomahawk und Tiles!?

JayGabriel

Aktives Mitglied
Hallo,

ich hoffe, dass mir hier wieder jemand helfen kann!

Seit letzter Woche stelle ich ein JSF - MyFaces/Tomahwark Projekt auf Templating mit Apache Tiles um.
Nach kleineren Startproblemen und dem üblichen Wald vor lauter Bäumen nicht sehen, funktioniert nun eigentlich fast alles, wie es sollte. Nur die InputCalendar Tags bereiten mir weiterhin Kopfzerbrechen.

Ich versuch diese als Popups rendern zu lassen, doch es kommt einfach kein Popup.

Nach langer Recherche bin ich zwar zu einer mickrigen Lösung gekommen, doch es stellt mich so gar nicht zu Frieden... :noe:

Mit diesem Eintrag
[xml]
<context-param>
<param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
<param-value>org.apache.myfaces.component.html.util.StreamingAddResource</param-value>
</context-param>
[/xml]
in der Web.xml habe ich immerhin einen Calendar zum Anzeigen bekommen, doch er erscheint nicht als Popup sondern als inline Calendar am unteren Ende der WebSeite. Und da ich zwei von diesen auch noch jedes Mal auf den Seiten einbinde (Start und Enddatum) sieht man die Eingabefelder meist nicht einmal mehr auf der zurzeit dargestellten Oberfläche und hat einen ellen langen weißen und ungenutzten Bereich, wenn keiner der Calendar eingeblendet ist.
Muss ich vielleicht eine andere Klasse/Komponente noch zusätzlich einbinden?

Oder hat jemand von euch schon das gleiche Problem mit Tomahawk und Tiles gehabt und dieses anderweitig lösen können?
Nach dem Kommentar dieser Seite scheint ein JavaScript Conflikt vorzuliegen? Doch aus der verlinkten Seite werde ich leider nicht schlau. Mit JavaScript hatte ich bisher leider nicht viel am Hut.

mfg
Jay
 

JayGabriel

Aktives Mitglied
Hat niemand von euch Erfahrung damit? Ich komm leider nicht weiter. :bahnhof:

Tomahawk scheint "prototyp.js" zu benutzen, Tiles hingegen "jQuery.js". Dadurch entsteht ein Konflikt, der irgendwie auch umgangen werden kann, wie ich auf einigen Seiten gelesen habe, aber nichts davon funktioniert bei mir...

Als letztes hatte ich folgendes eingefügt:
Java:
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  //<![CDATA[
    jQuery.noConflict();
    // Benutze jQuery über jQuery(...)
    jQuery(document).ready(function(){
      jQuery("div").hide();
    });
 
    // Benutze Prototype über $(...), etc.
    $('someid').hide();
  //]]>
</script>

Nur hab ich keine Ahnung, ob dabei noch etwas angepasst werden muss, da ich mit JavaScript bisher nur wenig zu tun hatte.

Ebenfalls habe ich versucht, die JavaScriptdateien, das Stylesheet und die Icons, die vom InputCalendar Tag benutzt werden, in mein Projekt zu kopieren und dann per Hand zu verwenden.
Code:
styleLocation="/calendarconfig"
Code:
javascriptLocation="/calendarconfig"
Code:
imageLocation="/calendarconfig"
Auch das führte zu keiner Lösung.

Im IE habe ich mir das alles nun auch mal angeschaut und bin dort auf ein paar Fehler aufmerksam geworden, die bei all dem angezeigt werden:

Code:
Details zum Fehler auf der Webseite

Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Zeitstempel: Tue, 9 Aug 2011 11:33:19 UTC


Meldung: Ungültiges Argument.
Zeile: 802
Zeichen: 5
Code: 0
URI: http://localhost:8080/de.webproject.Mytest/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/13128895/calendar.HtmlCalendarRenderer/popcalendar.js

 
Details zum Fehler auf der Webseite

Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Zeitstempel: Tue, 9 Aug 2011 11:50:51 UTC


Meldung: 'Event' ist undefiniert
Zeile: 293
Zeichen: 13
Code: 0
URI: http://localhost:8080/de.webproject.Mytest/calendarconfig/popcalendar.js


Meldung: 'Event' ist undefiniert
Zeile: 293
Zeichen: 13
Code: 0
URI: http://localhost:8080/de.webproject.Mytest/calendarconfig/popcalendar.js

Und dann bei einem anderen Test:
Code:
Details zum Fehler auf der Webseite

Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Zeitstempel: Tue, 9 Aug 2011 13:01:10 UTC


Meldung: 'org_apache_myfaces_PopupCalendar' ist undefiniert
Zeile: 4
Zeichen: 1
Code: 0
URI: http://localhost:8080/de.webproject.Mytest/webabo/mainpage.faces


Meldung: 'org_apache_myfaces_PopupCalendar' ist undefiniert
Zeile: 23
Zeichen: 1
Code: 0
URI: http://localhost:8080/de.webproject.Mytest/webabo/mainpage.faces


Meldung: 'j_5Fid_5Fjsp_5F1162619647_5F0pc5_3AvonAenderungCalendarVar' ist undefiniert
Zeile: 22
Zeichen: 1
Code: 0
URI: http://localhost:8080/de.webproject.Mytest/webabo/mainpage.faces


Meldung: 'j_5Fid_5Fjsp_5F1162619647_5F0pc5_3AvonAenderungCalendarVar' ist undefiniert
Zeile: 22
Zeichen: 1
Code: 0
URI: http://localhost:8080/de.webproject.Mytest/webabo/mainpage.faces

Aber auch diese Meldungen sind überhaupt nicht hilfreich...

Desweiteren ist mir aufgefallen, dass mein Code, den ich durch die <tiles:insert...> Tags angegeben habe, über meinen <html> ... </html> Rumpf eingefügt werden. Das kann doch so nicht richtig sein, oder? ???:L

Beispiel (den Rattenschwanz aus dem Form Tag habe ich mal abgekürtzt, um nicht zu erschlagen):
HTML:
<form id="j_id_jsp_2085766583_1" ... </form>


<!DOCTYPE html>
<html lang="en">
<head>
	<title>WebAbo Contact</title>
	<link rel="stylesheet" type="text/css" href="../css/layout.css"></link>
	<script type="text/javascript" src="prototype.js"></script>
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">
    //<![CDATA[
		jQuery.noConflict();
 
		// Benutze jQuery über jQuery(...)
		jQuery(document).ready(function(){
			jQuery("div").hide();
		});
 
		// Benutze Prototype über $(...), etc.
		$('someid').hide();
    //]]>
  </script>

</head>
<body>

</body>
</html>

Mein Layout sieht jedoch eigentlich ganz anders aus:
HTML:
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<!DOCTYPE html>
<html lang="en">
<head>
  <title><tiles:getAsString name="title" /></title>
  <link rel="stylesheet" type="text/css" href="../css/layout.css"></link>
  <script type="text/javascript" src="prototype.js"></script>
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">
    //<![CDATA[
      jQuery.noConflict();
 
      // Benutze jQuery über jQuery(...)
      jQuery(document).ready(function(){
	jQuery("div").hide();
      });
 
      // Benutze Prototype über $(...), etc.
      $('someid').hide();
    //]]>
  </script>
</head>
<body>
<f:view>
  <h:form>
    <h:panelGrid styleClass="grd_header" columns="1">
      <tiles:insertAttribute name="banner" flush="false"/>
      <tiles:insertAttribute name="header" flush="false" />
      <tiles:insertAttribute name="menu" flush="false" />
    </h:panelGrid>
  </h:form>
  <tiles:insertAttribute name="content" flush="false" />
  <h:form>
    <tiles:insertAttribute name="footer" flush="false" />
  </h:form>
</f:view>
</body>
</html>

Ich habe mal den Hinweis gelesen, dass Tiles und Facelets sich nicht ganz grün sind, stimmt das? Bis auf das Problem mit dem InputCalendar Tag von Tomahawk hab ich bisher noch keine Probleme entdeckt.

mfg
Jay
 

JayGabriel

Aktives Mitglied
Okay, nachdem ich fast die Tiles wieder aus dem Code entfernen wollte, habe ich den Fehler gefunden.

Und mal wieder war es viel simpler, als die Fehlermeldungen und Hinweise, auf die ich gestoßen bin, vermuten ließen...

Es lag tatsächlich am verschobenen Form Bereich... So hab ich nun einzig und allein meine
Code:
<f:view>
Tags in meinen Templates um meinen gesamten HTML Block herum verschoben.

Also von so (alte und falsche Variante):
[xml]
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<!DOCTYPE html>
<html lang="en">
<head>
<title><tiles:getAsString name="title" /></title>
<link rel="stylesheet" type="text/css" href="../css/layout.css"></link>
</head>
<body>
<f:view>
<tiles:insertAttribute name="content" flush="false" />
</f:view>
</body>
</html>
[/xml]

nach so (bringt bei mir nun richtige Darstellungsweise):
[xml]
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<f:view>
<!DOCTYPE html>
<html lang="en">
<head>
<title><tiles:getAsString name="title" /></title>
<link rel="stylesheet" type="text/css" href="../css/layout.css"></link>
</head>
<body>
<tiles:insertAttribute name="content" flush="false" />
</body>
</html>
</f:view>
[/xml]

Es klappt ebenfalls mit den Tomahawk Tags, die die HTML Tags ersetzen (
Code:
<t:document>
,
Code:
<t:documentHead>
und
Code:
<t:documentBody>
).
Nur die
Code:
<f:view>
Tags als erstes und als letztes sind die ausschlaggebenden Angaben.

Den ganzen anderen Kram mit dem
Code:
ADD_RESOURCE_CLASS
Context Parameter und den zusätzlichen Attributen
Code:
styleLocation="/calendarconfig"
Code:
javascriptLocation="/calendarconfig"
und
Code:
imageLocation="/calendarconfig"
im InputCalendar habe ich wieder rausgenommen. Ebenso wie mein Versuch den angeblichen JavaScript Konflikt zu beheben. Das alles war bei mir nicht notwendig...

mfg
Jay
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
G Javascript, Nodejs, Express Web Tier 0
R JavaScript für Java Enterprise Entwickler Web Tier 1
D JSF Einbindung von Javascript Web Tier 1
J Session Servlet - JavaScript Web Tier 6
M JSP und JavaScript Kommunikation in MVC Pattern Web Tier 1
E Kann man ein Formular in JSP auch per Tastendruck ohne Javascript-Verwendung abschicken? Web Tier 2
B JSP JavaScript SQL Update Web Tier 5
A JSF Rücksicht auf nicht eingeschaltetes JavaScript nehmen Web Tier 2
V Mittels JavaScript Methode aufrufen Web Tier 23
A JSON von JavaScript an Servlet Web Tier 9
K JSP String[] Array nach Javascript Web Tier 4
C JSF Datenaustausch JSF zu Javascript Web Tier 12
J Facelets javascript compiler problem Web Tier 3
C JSON-Antwort an Javascript geht nicht Web Tier 7
S Per JavaScript Java ansteuern - Welche Technik? Web Tier 2
F selektieren mit javascript Web Tier 9
S Jsp: javascript und javamethode aufrufen Web Tier 17
H <form:input > javascript Web Tier 2
M html + jquery(javascript-framework): elegantes und flexibles Formulardesign Web Tier 5
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
F Meinungsumfrage Struts / Javascript Web Tier 3
J Managed bean und javascript kommunikation (JSF 2) Web Tier 2
2 JavaScript Status erkennen? Web Tier 3
Schandro JSP soll dynamische Anzahl an Parametern einer JavaScript-Function erzeugen Web Tier 8
V Eigene JavaScript und JSF (a4j) Web Tier 3
S JavaScript-Funktion aufrufen mit a4j-support?? Web Tier 3
J JavaScript-Code aus Applet ausführen? Web Tier 4
pusteblume JavaScript mit Struts auslesen? Web Tier 3
T Ajax / Javascript Plugin für Eclipse Web Tier 1
G wert für hiddenfield per javascript setzten Web Tier 4
D Tapestry :: JavaScript - Libs import Web Tier 2
B JavaScript und JSF - Diashow Web Tier 9
pkm Probleme mit einem AJAX-Call in einem dynamischen Webprojekt Web Tier 15
M JSF Probleme bei Navigation mit Verzeichnisswechsel Web Tier 2
W JSF Probleme mit Data Table Web Tier 8
W JSF Probleme mit Zugriff zur Managed Bean Web Tier 11
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
F JSF Probleme mit OverlayPanel Web Tier 0
H Frameset durch Tabelle ersetzten - Probleme mit jsp:include Web Tier 3
xehpuk JSF URL-Encoding-Probleme bei <h:link> (Mojarra) Web Tier 4
M ejb @Remote macht probleme Web Tier 10
S JSF SelectOneMenu - Probleme mit AJAX Web Tier 6
W Probleme mit Expression language ? Web Tier 13
P JSF Datenbank Probleme (Limit, Wiederholung) Web Tier 8
B Probleme mit h:selectOneRadio Web Tier 2
T DWR - Probleme mit Konfiguration Web Tier 13
W JSF MyFaces Tomahawk Probleme Web Tier 4
G Probleme mit EclipseLink und Java.util.Date Web Tier 3
S JSF Probleme beim redirect im ExceptionHandler Web Tier 2
P JSF 1.2 Navigation probleme Web Tier 2
D Probleme beim installieren von WebBeans Web Tier 2
D Probleme mit Tomcat Web Tier 3
M Tomcat 6 Umlaut Probleme Web Tier 2
D Seam Example Probleme Web Tier 2
C Probleme mit JSPs in Unterverzeichnissen Web Tier 4
A [PrimeFaces] dataTable mit paginator Probleme Web Tier 2
0 JSF: css einbinden - Probleme Web Tier 2
M iframe probleme Web Tier 2
K [GWT] Probleme beim asynchronen Methodenaufruf mit GWT-RPC Web Tier 8
B Probleme mit RichFaces Web Tier 2
O struts2 - Probleme mit parametrisierten URLs Web Tier 5
E Probleme mit GWT & MySQL Web Tier 3
G Probleme mit Ajax Login (jsp) Web Tier 5
S Tomcat / Eclipse Probleme Web Tier 2
B Probleme mit <jsp:include page=""/> und Laufzeit Web Tier 7
P Zurück-Button des Browsers macht Probleme Web Tier 9
O Struts2: Probleme mit Links aus Packages raus Web Tier 9
A JSF+Glassfish: Probleme mit Managed Bean Web Tier 2
S Probleme mit den Nav_rules und HTML code Web Tier 2
D Probleme mit ServletRequest Web Tier 14
G Probleme mit Tomcat Web Tier 14
E RichFaces 3.2.1 Probleme Web Tier 4
W JSTL macht Probleme Web Tier 6
W JavaBeans class="" macht Probleme Web Tier 2
A Time-Out Probleme Web Tier 21
B Probleme mit Marquee Tag Web Tier 3
D Unterschied zwischen JSP und JSF Web Tier 3
T JSF Variable zwischen 2 Beans austauschen? Web Tier 3
X Managed Bean Scope zwischen Request und Session gesucht Web Tier 6
J Kommunikation zwischen Servlet und EJB Web Tier 6
D Kommunikation zwischen JSF Managed Beans Web Tier 11
S Daten zwischen 2 Servlets aus 2 Webapplikationen teilen? Web Tier 17
M Zwischen GET und POST unterscheiden Web Tier 9
M Dateien zwischen Web-Applications austauschen Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben