2011-03-14 6 views
8

Bonne journée!HTML Select Box, données sélectionnées du servlet

J'ai un problème avec la zone de sélection en html. Je suis sur la partie EDIT de mon projet CRUD simple et avant que les utilisateurs puissent éditer, les données choisies seront montrées d'abord et je les ai récupérées dans la base de données par l'intermédiaire de la servlet.

Maintenant, je veux que les données que je récupère soient celles qui sont SÉLECTIONNÉES (par défaut) dans ma boîte de sélection. ${product.category}

<select size="1" name="category"> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

J'ai essayé de l'insérer comme ça, mais ça ne marche pas.

<select size="1" name="category" selected=${product.category}> 
     <option value ="1">Dogs</option> 
     <option value ="2">Cats</option> 
     <option value ="5">Others</option> 
</select> 

Je veux faire quelque chose comme ça .. Si ($ {} product.category == 1), choisi l'option 1 = ...

J'ai vu quelque chose comme THIS dans l'un des les forums mais c'est au format PHP. Comment puis-je le faire en utilisant JSP?

Merci beaucoup.

Répondre

11

L'attribut selected doit aller sur l'élément HTML <option> et il devrait que être réglé lorsque les matches de valeur de l'option. La manière la plus élégante consiste à utiliser l'opérateur conditionnel ?:.

<select name="category"> 
    <option value="1" ${product.category == '1' ? 'selected' : ''}>Dogs</option> 
    <option value="2" ${product.category == '2' ? 'selected' : ''}>Cats</option> 
    <option value="5" ${product.category == '5' ? 'selected' : ''}>Others</option> 
</select> 

Il serait mieux si vous avez des articles dans certains List ou Map. Par exemple. un List<Category>Category a id et name propriétés.

<select name="category"> 
    <c:forEach items="${categories}" var="category"> 
     <option value="${category.id}" ${product.category == category.id ? 'selected' : ''}>${category.name}</option> 
    </c:forEach> 
</select> 

De cette façon, vous n'avez pas besoin de répéter la même chose pour toutes les options.

+0

Merci Monsieur BalusC. :) – newbie

+0

De rien. – BalusC