美好的一天!
我在html中的选择框有问题.我在我的简单CRUD项目的EDIT部分,在用户可以编辑之前,首先显示所选数据,然后通过servlet在数据库中检索它.
现在我希望我检索的数据是我选择框中的SELECTED(默认值). ${} 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),选择=选项1 ……
我在其中一个论坛上看到了像THIS这样的东西,但它是PHP格式的.我怎么能用JSP做到这一点?
非常感谢你.
解决方法
所选属性必须包含HTML< 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>
如果你有一些列表或地图中的项目,那就更好了.例如.列表<类别>其中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>
这样您就不需要为所有选项重复相同的操作.