2010-02-12 29 views
10

que tienen dos cadenas que tengo que comparar, pero incluso si tienen los mismos valores o diferente, siempre entra en la declaración ...Comparación de cadenas con JSTL

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

Respuesta

7

El problema es que es probable que no se coloca la etiqueta cuando en un elegir.

si tiene:

<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> 

que funcionará

+0

sí, ¡tienes razón! :) Olvidé la etiqueta . jaja. – Moon13

+0

¡No hay problema en ayudar! –

-1

Prueba esto ...

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

ne = no igual

también

# debería ser de $

+0

Hola, lo intenté con $ pero funciona. Tuve que cambiar a la etiqueta C: IF. Gracias. – Moon13

+0

bien, acabo de darme cuenta que debería ser c: si también - no entendí tu pregunta original – Zinc

-1

Si fuese campos que se supone que aparecerá solamente cuando nombre1 nombre2 es diferente de

+0

sí, los campos solo deberían aparecer cuando son diferentes. El problema es que incluso si tienen los mismos valores, ingresan a la declaración , pero no se suponía que así fuera. – Moon13

+0

También traté de hacer esto pero es el mismo resultado. – Moon13

4

debería ser?

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

EDIT: <c:when> se supone que es el interior <c:choose>. No puedo preguntar por qué, esa es solo la sintaxis. Es como preguntar por qué if no funcionará en lugar de switch en C/C++/Java. Son simplemente diferentes animales.

+2

No si está envuelto en una etiqueta

+1

¡sí! ¿Por qué C: cuando no funciona? – Moon13

+0

# debe ser $ ... – Zinc

0

lo hace ninguna diferencia si usted hace esto:

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

sí, probé esto, y tiene el mismo resultado. Lo cambié a c: si y ahora funcionó. Pero no entendí por qué no funcionó con c: cuando ... – Moon13

0

he notado alguna descamación cuando se utiliza c: si oc: elegir y c: cuando dentro de algunos componentes de iteración JSF, como rica: tabla de datos. ¿Cuál es el contexto completo?

Como solución alternativa, normalmente tendría que ajustar elementos en a4j: outputPanel y configurar el atributo renderizado en consecuencia.

Cuestiones relacionadas