¿Cómo puedo validar si una cadena es nula o está vacía usando las etiquetas c de JSTL?
Puede usar la empty
palabra clave en a <c:if>
para esto:
<c:if test="${empty var1}">
var1 is empty or null.
</c:if>
<c:if test="${not empty var1}">
var1 is NOT empty or null.
</c:if>
O el <c:choose>
:
<c:choose>
<c:when test="${empty var1}">
var1 is empty or null.
</c:when>
<c:otherwise>
var1 is NOT empty or null.
</c:otherwise>
</c:choose>
O si no necesita renderizar condicionalmente un montón de etiquetas y, por lo tanto, solo puede verificarlo dentro de un atributo de etiqueta, puede usar el operador condicional EL ${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
Para obtener más información sobre esas ${}
cosas (el Lenguaje de expresión , que es un tema separado de JSTL ), marque aquí .
Ver también:
empty
no funcionaSet
cuando se usa el antiguo JSTL 1.0. Debería actualizar a JSTL 1.1 (que ya es de 2003).${not empty var1}
verifica tanto vacío como nulo simultáneamente? Quiero decir que la prueba se evalúa como verdadera si y solo si novar1
es nula y no está vacía. ¿No hay necesidad de verificar por separado?var1
null
empty
equivalente a ne ''String
valores, es equivalente avar ne null and var ne ''
. Además también es compatibleObject
, matrizCollection
yMap
.para verificar también la cadena en blanco, sugiero seguir
También maneja nulos
fuente
si marca solo nulo o vacío, puede usar la opción predeterminada para esto:
<c:out default="var1 is empty or null." value="${var1}"/>
fuente
Este código es correcto, pero si ingresó mucho espacio ('') en lugar de una cadena nula o vacía, devuelve falso.
Para corregir esto, utilice la expresión regular (este código a continuación verifique si la variable es nula o está vacía o en blanco igual que org.apache.commons.lang.StringUtils.isNotBlank):
fuente
Aquí está el trazador de líneas.
Operador ternario dentro de EL
fuente
Puedes usar
alternativamente.
fuente
Aquí hay un ejemplo de cómo validar un int y una cadena que pasa del controlador Java al archivo JSP.
MainController.java:
importJavaToJSPExamples.jsp
fuente
fuente