Erste JSF anlegen

Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo,
wie oben erwähnt versuch ich meine erste JSF Seite zu schreiben...
Ich habe mit den Eclipse Webtools eine Dynamic Web Project angelegt.

Und hier wie vielen bestimmt bekannt die typische erste jsf Seite
Code:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
   <title>Berechnung eines Flächeninhaltes</title>
</head>

<body>
<f:view>
   <h3>JSF-Beispielanwendung zur Berechnung eines Flächeninhaltes:</h3>
    [i]Dieses Programm berechnet aufgrund der Eingabe einer
    Seitenlänge den Flächeninhalt eines Quadrates.[/i]
    


   
    <h:form id="inputForm">

      Bitte geben Sie eine Seitenlänge ein:   
      <h:inputText value="#{Square.length}" />
      
      <h:commandButton value="Berechnen" action="success" />
   
   </h:form>

</f:view>
</body>
</html>


nur zeigt mir eclipse viele Fehlermeldungen an...
1.unkwon tag f:view
2. cannot find the tag libary descriptor http://java.sun.com/jsf/html

was mache ich falsch??? Was muss ich noch einfügen??
 

HLX

Top Contributor
Hast du die Bibliotheken 'jsf-api.jar' und 'jsf-impl.jar' in den Build Path deines Projekts aufgenommen?
 
G

Gast2

Gast
Nee hab ich nicht, wo find ich die??? Stand aber auch nirgends dass ich die aufnehmen sollte oder??:### ...


Ich habe davor ein ganz normales Java project angelegt weil ich die Webtools nicht hatte und hab da ein javaee.jar vom glassfish mit eingebunden...
da hatte ich das problem nicht und deployen lies es sich auch ohne probleme... eclipse meckert erst seit ich die webtools verwende...
 

HLX

Top Contributor
Hast du in irgendeiner Form JSF in dein Eclipse Projekt oder deinen Workspace integriert?

Falls nicht, musst du es zunächst herunterladen. Darin sind die erforderlichen JARs enthalten.

Wenn du in einer JSP-Seite eine externe Tag-Bibliothek verwendest, musst du immer den entsprechenden Tag Library Descriptor (TLD-Datei) im ClassPath haben. Der TLD beschreibt die einzelnen Tags - z.B. welche Attribute sie zulassen und mit welcher Klasse sie implementiert sind. Die Deskriptoren für JSF-Tags befinden sich in den beiden/einer der beiden JARs.
 
G

Gast2

Gast
Nö hab ich nicht
das war mein classpath

Code:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="src" path="test"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
	<classpathentry kind="lib" path="lib/javaee.jar"/>
	<classpathentry kind="output" path="bin"/>
</classpath>


und das war die seite keine probeme gehabt...
Code:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 

<html>
  <head>
    <title>Recipe DB</title>
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
  
    <jsp:include page="_menu.jsp">
      <jsp:param name="headline" value="Recipe DB - view recipe" />
    </jsp:include>
    
    
    <f:view>
    <h:form id="viewRecipeForm" styleClass="rdb-standard-form">
      <h:outputText value="#{RecipeBean.recipeTitle}" styleClass="rview-title" /> & &
      <h:commandButton action="edit" value="edit" />
    </h:form>
    
    

<span class="rdb-standard-sectionheader">Category</span>
    <h:outputText value="#{RecipeBean.recipeCategory}" rendered="#{!empty RecipeBean.recipeCategory}" /></p>
    
    <div class="rdb-standard-sectionheader">Ingredients</div>
    <div class="rdb-standard-section">
      <table class="ingredients-table">
        <c:forEach var="ingr" items="#{RecipeBean.recipe.ingredients}">
          <tr>
            <td>${ingr.quantity}</td>
            <td>${ingr.unit.abbreviation}</td>
            <td>${ingr.foodItem.name}</td>
          </tr>
        </c:forEach>
      </table>
    </div>
    
    <div class="rdb-standard-sectionheader">Preparation</div>
    <div class="rdb-standard-section">
      <h:outputText value="#{RecipeBean.recipePreparationDesc}"
          rendered="#{fn:length(RecipeBean.recipePreparationDesc) > 0}"/>
    </div>
    
    <div class="rdb-standard-sectionheader">Serving</div>
    <div class="rdb-standard-section">
      <h:outputText value="#{RecipeBean.recipeServingDesc}"
          rendered="#{fn:length(RecipeBean.recipePreparationDesc) > 0}" />
    </div>
  </f:view>
    
    
    <%@include file="_side.jsp" %>
        
  </body>
</html>

EDIT: Danke mit den 2 jars geht.
Warum sind die jars nicht gleich dabei??
Und warum es in dem Beispiel da oben klappt weiß ich auch nicht so rehct ???? =)
 

HLX

Top Contributor
Ich kenne das 'javaee.jar' nicht, aber möglicherweise enthält es ebenfalls JSF und damit auch die TLDs.

Sofern du keinen Server unter 'Window --> Preferences --> Server --> Installed Runtimes' angegeben, oder hier einen Tomcat ausgewählt hast, steht dir das 'javaee.jar' natürlich nicht zur Verfügung. In diesem Fall brauchst du die 'jsf-api.jar' und die 'jsf-impl.jar'.

EDIT: die JARs sind sicher nicht dabei, weil damit zum Einen eine spezielle JSP-Implementierung unterstützt werden müsste, und zum Anderen wie du siehst, die Art der Einbindung vom AppServer abhängt. Gleiches gilt auch für das Servlet API. Hier kommen die JARs auch vom Server.
 
G

Gast2

Gast
Sofern du keinen Server unter 'Window --> Preferences --> Server --> Installed Runtimes' angegeben, oder hier einen Tomcat ausgewählt hast, steht dir das 'javaee.jar' natürlich nicht zur Verfügung

das versuch ich nachher mal einzustellen ...

ok danke für die infos =)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erste Gehversuche mit GWT Web Tier 4

Ähnliche Java Themen


Oben