tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
5434
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Basti54
    Basti54 Basti54 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    159
    Klingt kompliziert, gibt aber bestimmt ne super einfache Lösung.

    Ich will auf meine mit <c: definierten Werte auch in Textinputfeldern oder SelectMenüs zugreifen können. Wie stell ich das an? ${irgendwas} wird auch so in das Feld reigeschrieben.

    Mal nen Beispiel, das nicht geht:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    <c:forEach items="${client.routeInfo.myroute.routeelements}" var="routeelement" varStatus="index">
     
    <c:choose>
    <c:when test="${routeelement.status == 2}">
    <h:inputText value="${routeelement.eingabe}" styleClass="inputfieldleft" 
    required="true" rendered="true">
    </c:when>
    <c:when test="${routeelement.status == 1}">
    <h:selectOneMenu required="true" value="${routeelement.adresse}">
    <f:selectItems id="Addresses" value="${routeelement.adressen}" />
    </h:selectOneMenu>
    </c:when>
    </c:choose>
     
    </c:forEach>

    Ausgabe im HTML-inputText ist:
    Code :
    1
    
    ${routeelement.eingabe}


    beim Select gibt's nen Fehler, weil es halt nur nen String is.
    Geändert von Basti54 (13.06.05 um 19:39 Uhr)
     
    come ready to play!

  2. #2
    Avatar von Basti54
    Basti54 Basti54 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    159
    Keiner 'ne Idee?

    Oder vielleicht kann man die Variable irgendwie setzen, dass man das ganze mit den jsf-Tags nutzen kann?
     
    come ready to play!

  3. #3
    Avatar von Basti54
    Basti54 Basti54 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    159
    Also ich kann mit c:set die Variable setzen, und dann auch in beispielsweise den <h.inputText> per #{name} einlesen. Das funktioniert aber auch nur solange, wie ich nur ein Element habe. will ich jedoch einen Vector oder so durch iterieren, bekomm ich eine NullPointer. Logisch, da der Name immer gleich bleibt und der JSF Tag vom Vorgänger ins Leere zeigt!

    Weiß denn da keiner weiter?
     
    come ready to play!

  4. #4
    Avatar von Basti54
    Basti54 Basti54 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    159
    Ok, vergessen wir mal JSTL und fragen wir mal anders:

    Wie kann ich einen Vector mit JSF durchiterieren, auch wenn mir die Anzahl der Elemente nicht bekannt ist. Die Anwendung soll den Wert jedes Elements in einem input-Feld ausgeben.

    Der Zugriff würde ja so erfolgen:

    Code :
    1
    2
    3
    4
    
    <h:inputText value="#{elements[1].userinput}" 
    styleClass="inputfieldleft" required="true" />
    <h:inputText value="#{elements[2].userinput}" 
    styleClass="inputfieldleft" required="true" />

    Wie kann ich das aber in eine Schleife packen (elements ist ein Vector)? Am besten ist eine Zählschleife, da ich zu jedem Objekt im Vector noch eindeutig definierte Buttons brauche (also ButtonElement1, ButtonElement2, ..)
     
    come ready to play!

  5. #5
    Avatar von Basti54
    Basti54 Basti54 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    159
    Ok. so also auch nicht.
    Hab es jetzt mit nem h:dataTable gemacht.

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    <h:dataTable value="#{client.routeInfo.myroute.routeElementsAsList}"
    var="routeElement" border="0">
    <h:column>
    <h:inputText value="#{routeElement.userinput}"
    styleClass="inputfieldleft" required="true">
    </h:column>
    </h:dataTable>

    Das geth auch. Problem jetzt:
    Ich brauch eine Ablaufsteuerung da drin! Sprich eine if Abfrage eines jeden Elements. Da ist mir eingefallen, man könnte ja <c:if test=... nutzen. nur mit ${routeElement} bekomm ich nicht das Objekt, was im DataTable gemeint ist. Kann da vllt einer helfen?
     
    come ready to play!

  6. #6
    Avatar von Basti54
    Basti54 Basti54 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    159
    Ich schein wohl mit dem Problem alleine da zu stehen....Keine Tipps?
     
    come ready to play!

  7. #7
    Avatar von Basti54
    Basti54 Basti54 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    159
    Hab das Problem gelöst. Und zwar doch
    recht einfach.

    Es gibt ein Attribut zu jeder JSF-Komponente, dass sich "rendered" nennt. hier
    kann ich aus meinem Element eine boolean-Methode aufrufen, die den Status
    verifiziert. gibt's ein true, wird die Komponente gerendert, wenn false, dann
    nicht.
     
    come ready to play!

Ähnliche Themen

  1. MVC Konzept Frage - JSTL Tags funktionieren nicht in Facelets/MyFaces
    Von alan79 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 15.05.08, 23:23
  2. Dynamische Website JSTL Tags, Eintrag in DB löschen
    Von tplanitz im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 20.07.06, 16:50
  3. JSTL Function-Tags im Spring Framework
    Von Issy im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 17.07.06, 11:16
  4. [JSF] JSTL Tags werden nicht interpretiert
    Von Basti54 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 26
    Letzter Beitrag: 24.10.05, 18:16
  5. Zugriff auf denn Inhalt des div tags
    Von Gerold Kumpfhuber im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 16.11.04, 11:35