Como posso validar se uma String é nula ou vazia usando as tags c do JSTL?
Você pode usar a empty
palavra - chave em a <c:if>
para isso:
<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>
Ou o <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>
Ou, se você não precisar renderizar um monte de tags condicionalmente e, portanto, você só poderá verificá-lo dentro de um atributo de tag, poderá usar o operador condicional EL ${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
Para saber mais sobre essas ${}
coisas (a Expression Language , que é um assunto separado do JSTL ), verifique aqui .
Veja também:
empty
não funcionaSet
ao usar o antigo JSTL 1.0. Você precisaria atualizar para o JSTL 1.1 (que já é de 2003).${not empty var1}
verifica se há vazio e nulo simultaneamente? Quero dizer que o teste é avaliado como verdadeiro se e somente se nãovar1
for nulo e nãovar1
estiver vazio. Não há necessidade de verificar separadamente?null
empty
equivalente a ne ''String
valores, é equivalente avar ne null and var ne ''
. Além disso, ele também suportaObject
, arrayCollection
eMap
.para verificar também a string em branco, sugiro seguir
Ele também lida com nulos
fonte
se você marcar apenas nulo ou vazio, poderá usar a opção with default para isso:
<c:out default="var1 is empty or null." value="${var1}"/>
fonte
Este código está correto, mas se você inseriu muito espaço ('') em vez de uma cadeia nula ou vazia, retorne false.
Para corrigir isso, use a expressão regular (este código abaixo, verifique se a variável é nula ou vazia ou em branco, igual a org.apache.commons.lang.StringUtils.isNotBlank):
fonte
Aqui está o forro.
Operador ternário dentro do EL
fonte
Você pode usar
alternativamente.
fonte
Aqui está um exemplo de como validar um int e uma String que você passa do Java Controller para o arquivo JSP.
MainController.java:
importJavaToJSPExamples.jsp
fonte
fonte