2011-03-14 18 views
8

¡Buen día!Cuadro de selección HTML, datos seleccionados del servlet

Tengo un problema con el cuadro de selección en html. Estoy en la parte de EDITAR de mi proyecto CRUD simple y antes de que los usuarios puedan editar, los datos elegidos se mostrarán primero y los recuperé en la base de datos a través del servlet.

Ahora quiero que los datos que recupero sean el SELECCIONADO (predeterminado) en mi cuadro de selección. ${product.category}

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

Me trataron de introducirla como este, pero no funciona.

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

quiero hacer algo como esto .. Si ($ {} product.category == 1), seleccionada la opción 1 = ...

he visto algo así en una de THIS los foros, pero está en formato PHP. ¿Cómo puedo hacerlo usando JSP?

Muchas gracias.

Respuesta

11

selected El atributo tiene que ir en el <option> elemento HTML y debe única puede establecer cuando los partidos valor de la opción. La forma más elegante es usar el operador condicional ?:.

<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> 

mejor sería si usted tiene los elementos en algunos List o Map. P.ej. a List<Category> donde Category tiene id y name propiedades.

<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 esta manera no necesita repetir lo mismo para todas las opciones.

+0

Gracias Sr. BalusC. :) – newbie

+0

De nada. – BalusC

Cuestiones relacionadas