美好的一天!
我在html中的选择框时遇到问题。我在我的简单CRUD项目的EDIT部分中,在用户可以编辑之前,所选数据将首先显示,然后通过servlet在数据库中检索到它。
现在,我希望检索到的数据成为我的选择框中的“已选择”(默认)数据。 ${product.category}
${product.category}
<select size="1" name="category"> <option value ="1">Dogs</option> <option value ="2">Cats</option> <option value ="5">Others</option> </select>
我试图像这样插入它,但是不起作用。
<select size="1" name="category" selected=${product.category}> <option value ="1">Dogs</option> <option value ="2">Cats</option> <option value ="5">Others</option> </select>
我想做这样的事情。如果($ {product.category} == 1),selected = option 1 …
我在一个论坛中看到过类似THIS的东西,但是它是PHP格式的。如何使用JSP做到这一点?
非常感谢你。
该selected属性必须位于HTML<option>元素上,并且仅应在选项值匹配时设置。最优雅的方法是使用条件运算符?:。
selected
<option>
?:
<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>
最好是如果您有一些物品List或物品Map。例如,List<Category>其中Category具有id和name属性。
List
Map
List<Category>
Category
id
name
<select name="category"> <c:forEach items="${categories}" var="category"> <option value="${category.id}" ${product.category == category.id ? 'selected' : ''}>${category.name}</option> </c:forEach> </select>
这样,您无需为所有选项重复相同的操作。