2016-07-20 9 views
0

In jstl, wenn ich erklären, eine leere Boolesche Variable wie -Passing leer oder null Boolean Parameter in jstl

<c:set var="isCompleted" value=""/> 

und den Wert zu einem Tag übergeben, mit dem Namen testBoolean.tag -

<tagDir:testBoolean completed=${isCompleted}/> 

und testen Sie den Wert in testBoolean.tag, zeigt es falsch, während empty or null erwartet wird.

Ist etwas fehlt ich oder dieses Problem wurde bereits angesprochen.

Edit: Im Tag hat das Attribut Boolean

<%@ attribute name="completed" type="java.lang.Boolean" required="true" %> 
+0

Sieht aus wie BoolValue ist ein primitiver 'boolean' kein Objekt' Boolean' – Jens

Antwort

-1

In Ihrem benutzerdefinierten Tag erklären Sie bestimmte Art von boolValue als boolean haben muss standardmäßig, die es falsch macht, wenn kein Wert ist bereitgestellt oder die Zeichenfolge ist alles andere als wahr. Wenn Sie genau den Wert wünschen, den Sie festgelegt haben, versuchen Sie, seinen Typ als String zu definieren.

+0

Ist das erwartete Verhalten gegeben, dass mein Attributtyp ist java.lang.Boolean – shakhawat

+0

Ja, das ist zu erwarten. Jede andere Zeichenfolge als "true" wird von der Boolean-Wrapper-Klasse als false ausgewertet. Für das erwartete Verhalten, das Sie benötigen, behalten Sie den Typ als Zeichenfolge bei, und Sie können dann die Manipulation in Ihrem benutzerdefinierten Tag vornehmen. –

+0

Wenn Sie mit Java-Konvention gehen, kann das nicht das ideale Verhalten sein, da Boolean null sein kann. Und in Bezug auf Ihre vorgeschlagene Lösung, wenn dies die Implementierung von Attributtyp Handhabung ist, stimme ich Ihnen zu, dass ich string übergeben muss. – shakhawat