Verwendung der booleschen Variablen in c: if

8

Ich verwende diesen Code in JSF.:

%Vor%

sv ist meine Klasse mit Daten (pojo), done ist eine Boolean Variable, ich möchte option tag mit selected Attribut anzeigen, wenn sV.done is true ist. Aber ich konnte es nicht schaffen. Ich weiß nicht, wo ich falsch liege.

Sonst kann etwas mit c nicht stimmen, weil c:forEach in meinem Fall auf der gleichen Seite nicht vor einiger Zeit funktionierte? Es kann der Grund sein? Wo ich falsch liege?

Jedes Mal, wenn das Optionsfeld ohne ausgewähltes attribute angezeigt wird.

    
Patriks 06.10.2012, 09:31
quelle

4 Antworten

-2

Wie ich bereits erwähnt habe, scheint es so zu sein, als ob eine andere Komponente / Bibliothek sich in die Arbeit von c einmischen würde: Wenn es auf keinen Fall funktionierte. Ich habe alle oben genannten Vorschläge ausprobiert. Danke an alle für die Antworten.

    
Patriks 07.01.2013, 07:02
quelle
7

Versuchen Sie Folgendes: -

%Vor%

Und für die Negation (wenn sV.done falsch ist): -

%Vor%

Weitere Informationen zu wenn mit Operatoren finden Sie unter folgendem Link: - JSTL if

    
Rohit Jain 06.10.2012 09:35
quelle
5

Ihre Syntax ist gut, vorausgesetzt, Sie verwenden EL 2.2. Also, keiner der JSTL <c:xxx> Tags wurde interpretiert? Sie müssen die JSTL-Core-Taglib importieren. Es ist unklar, welche Ansichtstechnologie und welche JSTL-Version Sie verwenden, daher hier einige Beispiele für JSP und Facelets.

JSP mit JSTL 1.0:

%Vor%

JSP mit JSTL 1.1 / 1.2:

%Vor%

Facelets 1.x mit JSTL 1.1 / 1.2:

%Vor%

Facelets 2.x mit JSTL 1.2:

%Vor%

Siehe auch:

Unrelated zum konkreten Problem, haben Sie überlegt, eine JSF UISelectOne -Komponente zu verwenden, anstatt selbst mit <option> elementen zu spielen? Sie können einige konkrete Beispiele in unserer h:selectOneMenu -Wiki-Seite finden.

    
BalusC 06.10.2012 11:38
quelle
3

JSF und JSTL greifen direkt auf "boxed" Objekte (Boolean, Integer usw.) zu. Es ist kein Unboxing erforderlich - Sie müssen also booleanValue () nicht aufrufen.

%Vor%

Aber eigentlich könnte Ihr gesamter Ansatz besser sein - ich gebe keine Optionen in einer Seite aus, ohne eine Liste von Optionen & amp; ein Wert. Ich schreibe keine Schleifen & amp; Auswahltests jedes Mal manuell, gibt es Tags oder Sie können eine Methode schreiben, um dies zu tun.

Super Hinweis: Ich habe eine Klasse namens Pair (String name, Objektwert) & amp; Bibliotheksmethode HtmlUI.renderSelectOptions (), um SELECT-Optionen aus einer Liste dieser & amp; ein 'aktueller' Wert.

Wählen Combo-Box möglicherweise nicht wirklich die beste Darstellung für einen Boolean entweder? Sie könnten mit einer Checkbox gehen. Aber das liegt an Ihrem UI-Design.

Wenn Sie diesen Weg gehen wollten, könnten Sie nur das SELECTED-Attribut innerhalb des Tags wechseln. Einfacher als duplizieren Code für die gesamte, Schlüssel & amp; value .. Für Legacy-Code habe ich eine Funktion, die genau diese Anforderung auch erfüllt:)

Hoffe, das hilft! Stimme mich ab.

    
Thomas W 06.10.2012 10:41
quelle

Tags und Links