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

new*_*bie 8 html select jsp

美好的一天!

我在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>
Run Code Online (Sandbox Code Playgroud)

我尝试像这样插入但它不起作用.

<select size="1" name="category" selected=${product.category}>
        <option value ="1">Dogs</option>
        <option value ="2">Cats</option>
        <option value ="5">Others</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情..如果($ {product.category} == 1),选择=选项1 ......

我见过像在论坛中的一个,但它是在PHP格式.我怎么能用JSP做到这一点?

非常感谢你.

Bal*_*usC 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>
Run Code Online (Sandbox Code Playgroud)

如果你有一些List或更多的项目,那就更好了Map.例如,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>
Run Code Online (Sandbox Code Playgroud)

这样您就不需要为所有选项重复相同的操作.