2010-02-12 5 views
10

Ho due stringhe che ho bisogno di confrontare, ma anche se hanno gli stessi valori o diverso, è sempre entra nella dichiarazione ...Confronto tra stringhe con JSTL

<c:when test="#{bean.name1 != bean.name2}"> 
    fields that are supposed to appear _only_ when name1 is different from name2 
</c:when> 

risposta

7

Il problema è che probabilmente non avvolgere il quando in un tag scegliere.

se si dispone di:

<c:choose> 
    <c:when test="${bean.name1 != bean.name2}"> 
     fields that are supposed to appear _only_ when name1 is different from name2 
    </c:when> 
</c:choose> 

funzionerà

+0

sì, hai ragione! :) Ho dimenticato il tag . haha. – Moon13

+0

Nessun problema lieto di aiutare! –

-1

Prova questo ...

<c:if test="${bean.name1 ne bean.name2}"> 
    fields that are supposed to appear _only_ when name1 is different from name2 
</c:if> 

ne = diverso

anche

# dovrebbe essere $

+0

Ciao, ho provato con $ ma funziona. ho dovuto passare al tag C: IF. Grazie. – Moon13

+0

ok ok, ho appena realizzato che dovrebbe essere c: se anche io - non ho capito la tua domanda originale – Zinc

-1

dovrebbe essere campi che dovrebbero comparire solo quando nome1 è diverso da nome2

+0

sì, i campi dovrebbero apparire solo quando sono diversi. Il problema è che anche se hanno gli stessi valori, entra nell'istruzione , ma non era previsto. – Moon13

+0

Ho anche provato a fare questo ma è lo stesso risultato. – Moon13

4

dovrebbe essere?

<c:if test="#{bean.name1 != bean.name2}"> 
    // code 
</c:if> 

EDIT: <c:when> si suppone essere all'interno <c:choose>. Non posso chiedere perché, questa è solo la sintassi. È come chiedere perché if non funzionerà al posto di switch in C/C++/Java. Sono solo animali diversi.

+2

Non se è avvolto in un tag –

+1

sì! Perché C: quando non funziona ??? – Moon13

+0

# dovrebbe essere $ ... – Zinc

0

Se la soluzione sia differenza se si fa questo:

<c:when test="${bean.name1 != bean.name2}"> 
    fields that are supposed to appear _only_ when name1 is different from name2 
</c:when> 
+0

sì, ho provato questo, e ha lo stesso risultato. L'ho cambiato in c: se e ora ha funzionato. Ma non ho capito perché non ha funzionato con c: Quando ... – Moon13

0

Ho notato qualche anomalia quando si utilizza c: se oc: scegliere e c: quando all'interno alcuni componenti iterazione JSF, come ad esempio ricchi: tabella dati. Qual è il contesto completo?

Come soluzione temporanea, in genere dovrei racchiudere le cose in un a4j: outputPanel e impostare l'attributo reso di conseguenza.