Valore selezionato per il menu a discesa JSP utilizzando JSTL

Ho SortedMap in Servlet per popolare i valori a discesa in JSP e ho il seguente codice

SortedMap dept = findDepartment(); request.setAttribute("dept ", dept); 

e in JSP

    ${item.value}   

Sto usando una pagina JSP per l’inserimento e l’aggiornamento. Quando sto modificando la pagina, come posso impostare il valore selezionato per scendere dove il valore selezionato verrà dal database.

In HTML, l’opzione selezionata è rappresentata dalla presenza dell’attributo selected sull’elemento modo:

  

O se sei HTML / XHTML severo:

  

Quindi, devi solo lasciare che JSP / EL lo stampi condizionatamente. A condizione che tu abbia preparato il reparto selezionato come segue:

 request.setAttribute("selectedDept", selectedDept); 

allora questo dovrebbe fare:

  

Guarda anche:

  • Come posso mantenere i valori del campo modulo HTML in JSP dopo aver inviato il modulo a Servlet?

Se non ti dispiace usare jQuery puoi usare il codice seguente:

    

Nel tuo Servlet aggiungi quanto segue:

  request.setAttribute("selectedDepartment", YOUR_SELECTED_DEPARTMENT ); 

Penso che gli esempi sopra siano corretti. ma non hai davvero bisogno di impostare

 request.setAttribute("selectedDept", selectedDept); 

puoi riutilizzare queste informazioni da JSTL, fai solo qualcosa del genere ..

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

Ho provato la risposta accettata, non ha funzionato.

Tuttavia il modo più semplice per farlo è qui sotto:

    

Godere!!

Ho provato l’ultima risposta da Sandeep Kumar, e ho trovato il modo più semplice:

  

Puoi provarne uno ancora più semplice:

  

Forse non capisco completamente la risposta accettata, quindi non ha funzionato per me.

Quello che ho fatto è stato semplicemente controllare se la variabile è nullo, assegnarla a un valore noto dal mio database. Che sembra essere simile alla risposta accettata in base alla quale si dichiara per la prima volta un valore noto e si imposta su selezionato

  

perché nessuna delle opzioni è selezionata, quindi item = null

 < % if(item == null){ item = "selectedDept"; //known value from your database } %> 

In questo modo se l’utente seleziona un’altra opzione, la mia clausola IF non la intercetterà e assegnerà il valore fisso dichiarato all’inizio. Il mio concetto potrebbe essere sbagliato qui ma funziona per me