JSF Cewolf (Chart) in JSF einbinden?

TheCritter

Aktives Mitglied
Ich bin gerade dabei eine Web-Anwendung zu schreiben. Ich habe mich jetzt auf JSF 2.x festgelegt, würde abber ungern JSP nehmen. Leider gibt es in Zusammenhang mit Cewolf nur Samples und Beschreibungen für .jsp Seiten. Ist es eigentlich grundsätzlich so dass wenn eine TagLib bei .jsp funktioniert, dann auch bei bspw .xhtml Seiten funktionieren muss?
Bei ersten Tests hat dies nämlich nicht funktioniert und diese Cewolf Tags wurden einfach ignoriert.
 

geqoo

Bekanntes Mitglied
Ist es eigentlich grundsätzlich so dass wenn eine TagLib bei .jsp funktioniert, dann auch bei bspw .xhtml Seiten funktionieren muss?
Grundsätzlich ist das leider nicht so.

Soweit ich das beurteilen kann, müsste man aber JSP Code in xhtml-Seiten verwenden können (eben wie in JSF 2 beschrieben, die Taglib über xmlns einbinden).
Eventuell kann man da in den View-Mappings noch etwas schrauben, damit kenne ich mich aber leider nicht aus.
 
Zuletzt bearbeitet:

geqoo

Bekanntes Mitglied
So, habe nochmal nachgelesen.
So soll es angeblich gehen:

Java:
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2">
JSP page content
</jsp:root>

Musst du mal ausprobieren, ob das Tag innerhalb des eingebundenen root-Elements erkannt wird. Falls nicht, könnte es evtl. auch an deinem WebContainer liegen, also einfach mal ausführen und schauen, ob etwas herauskommt und es möglicherweise nur in der IDE nicht erkannt wird.
 
Zuletzt bearbeitet:

TheCritter

Aktives Mitglied
Leider wird der <cewolf...> Tag immer noch nicht interpretiert. Ich gehe wie folgt vor. Kreiert habe ich mir ein DynamicWeb Projekt in Eclipse. Project Facets sind u.a. JavaServer Faces 2.1 und genommen habe ich MyFaces 2.1.x
Eine kleine Beispielanwendung habe ich mit in das Projekt rein genommen. Sie besteht aus einer Klasse, einer .jsp Datei und die Cewolf Libs. Diese ist auch lauffähig.

Jetz habe ich eine .xhtml Datei erstellt die eigentlich das Gleiche machen müsste. Bekommen tue ich aber eine leere Seite und im Seitenquelltext sind die <cewolf > Tags zu sehen.

Quelltexte
Funktionierende .jsp
[XML]<%@page contentType="text/html"%>
<%@taglib uri='/WEB-INF/cewolf.tld' prefix='cewolf' %>
<HTML>
<BODY>
<H1>Page View Statistics</H1>
<HR>
<jsp:useBean id="pageViews" class="de.laures.cewolf.example.PageViewCountData"/>
<cewolf:chart
id="line"
title="Page View Statistics"
type="line"
xaxislabel="Page"
yaxislabel="Views">
<cewolf:data>
<cewolf:producer id="pageViews"/>
</cewolf:data>
</cewolf:chart>
<p>
<cewolf:img chartid="line" renderer="cewolf" width="400" height="300"/>
<P>
</BODY>
</HTML>
[/XML]

.xhtml wo man nichts sieht:
[XML]<?xml version="1.0" encoding="utf-8"?>
<jsp:root
xmlns="http://www.w3.org/1999/xhtml"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:cewolf="/WEB-INF/cewolf.tld"
version="2.1">

<jsp:eek:utput doctype-root-element="html"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3c.org/TR/xhtml11/DTD/xhtml11.dtd" />

<jsp:directive.page contentType="text/html; charset=utf-8" language="java" />

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:cewolf2="http://cewolf.sourceforge.net/taglib/cewolf.tld">
<h:head>
<title>Charts</title>
</h:head>

<h:body>

<cewolf:chart
id="line"
title="Page View Statistics"
type="line"
xaxislabel="Page"
yaxislabel="Views">
<cewolf:data>
<cewolf:producer id="#{pageViewCountData}"/>
</cewolf:data>
</cewolf:chart>
<p/>
<cewolf:img chartid="line" renderer="cewolf" width="400" height="300"/>
<P/>
</h:body>
</html>
</jsp:root>
[/XML]

In meiner .xhtml habe ich in dem html tag noch cewolf2 drin. Ersetzte ich unten cewolf durch cewolf2, so ändert sich auch nichts. Auch das raus löschen von dem html tag und dem h:head bringt nichts.
Würde derjenige in dem Link nicht meinen er hat das mit diesem jsp:root tag geschafft, so würde ich meinen es ist unmöglich.
 

TheCritter

Aktives Mitglied
:) Ja eigentlich sind die ja nicht schlecht, aber von denen will ich ja weg ;)
Das Problem ist da hier und da funktioniert was nicht wie es soll. Hauptproblem ist ein Diagramm wo ich ein Balken/Liniendiagramm habe und die Balkenbreite/anzahl sich den Kalenderwochen anpasst. Also bspw im März sind KWs (seit Jahresanfang) schön breit. Jetzt in der KW38 sind das nur noch hauchdünne Nadelstriche. Schaue ich mir das Diagramm vom letzten Jahr an so habe ich ja 52KWs. Diese sind aber wieder schön breit, also die zur Verfügung stehende Breite wird gut genutzt. Finde dazu aber keine Einstellungsmöglichkeit.
 

sence

Bekanntes Mitglied
web.xml
Code:
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>

Aufbau mypage.xhtml
HTML:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:cewolf2="http://cewolf.sourceforge.net/taglib/cewolf.tld">
<h:head>
</h:head>
<h:body>

<cewolf:chart
                id="line"
                title="Page View Statistics"
                type="line"
                xaxislabel="Page"
                yaxislabel="Views">
                <cewolf:data>
                    <cewolf:producer id="#{pageViewCountData}"/>
                </cewolf:data>
            </cewolf:chart>

</h:body>
</html>

Aufruf:
http://myurl.tld/mypage.jsf
 
Zuletzt bearbeitet:

TheCritter

Aktives Mitglied
So in etwa hatte ich auch angefangen. Dachte so müsste es funktionieren.
Leider bleibt das Ergebniss das Gleiche. Ich lass das dann dann mit dem Cewolf :/
 

Ähnliche Java Themen

Neue Themen


Oben