HTML选择Box,从servlet中选择数据

时间:2011-03-14 11:39:22

标签: html jsp select

美好的一天!

我在使用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做到这一点?

非常感谢。

1 个答案:

答案 0 :(得分:13)

selected元素必须包含在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>

如果您拥有某些ListMap中的项目,那就更好了。例如。 List<Category>其中Categoryidname属性。

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

这样你就不需要为所有选项重复同样的事情了。