2014-05-18 22 views
12

Sto provando a verificare in JSTL se un attributo di sessione è vuoto. Tuttavia, l'attributo è vuoto. JSTL lo vede come un attributo non vuoto.JSTL: controlla se una stringa è vuota

Questo è l'hardcode che sto cercando di sostituire con JSTL. Questo codice funziona correttamente:

<% if (request.getAttribute("error") != null) { %> 
    <div class="alert alert-danger"> 
     <strong>Oh snap, something's wrong, maybe the following error could help you out?<br /></strong> 
     <%= request.getAttribute("error")%> 
    </div> 
<% } %> 

Ecco come ho sostituito con JSTL. Se selezionato, l'attributo-errore non è vuoto, tuttavia è vuoto.

<c:if test="${not empty sessionScope.error}"> 
    <div class="alert alert-danger"> 
     <strong>Oh snap, something's wrong, maybe the following error could help you out?<br /></strong> 
     <c:out value="${sessionScope.error}" /> 
    </div> 
</c:if> 
+0

hai aggiunto libreria JSTL – gyanu

+2

hai importato tag JSTL nella pagina ** <% @ taglib uri = "http://java.sun.com/jsp/jstl/core" prefisso = "c"%> ** – gyanu

+0

Questo era davvero il problema. Stavo risolvendo il problema per più di un'ora. Grazie :) – DaanCelie

risposta

13

Aggiungere la libreria JSTL e dichiarare la taglib nucleo:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

La JSTL equivalente di

<% if (request.getAttribute("error") != null) { %> 

è

<c:if test="${not empty error}"> 
+0

OP sta facendo allo stesso modo. – Braj

+0

Tentativo di rimuovere la requestScope, ma lo stesso problema persiste. – DaanCelie

1

Sto cercando di testare in JSTL se un session attribute è vuota

Dovete check in sessione ambito non in richiesta ambito.

Dovrebbe essere

<c:if test="${not empty sessionScope.error}"> 

invece di

<c:if test="${not empty requestScope.error}"> 

Se non siete sicuri circa la portata quindi utilizzare senza scopo che avrà un aspetto in tutto il campo di applicazione dal basso verso l'alto (pagina , richiesta, sessione poi finalmente in applicazione)

<c:if test="${not empty error}"> 
+0

Modificato, lo stesso problema persiste. Ho anche provato a rimuovere l'oscilloscopio, non funzionante. Sono assolutamente sicuro che l'attributo è vuoto perché ho lasciato il vecchio codice attivo e quel codice non sta generando nulla. – DaanCelie

+0

Guarda il mio post modificato. Condividi il codice in cui stai impostando l'attributo. Può essere 'error' non è il nome dell'attributo corretto. – Braj

+1

'$ {non vuoto null}' e '$ {non vuoto" "}' return 'false'. – Braj

Problemi correlati