【问题标题】:HTML Select Box, selected data from servletHTML 选择框,从 servlet 中选择的数据
【发布时间】:2011-07-14 23:00:58
【问题描述】:

美好的一天!

我在 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), selected=option 1...

我在其中一个论坛中看到过类似THIS 的内容,但它是PHP 格式的。如何使用 JSP 来实现?

非常感谢。

【问题讨论】:

    标签: html jsp select


    【解决方案1】:

    selected 属性必须在 HTML &lt;option&gt; 元素上,并且应该在选项值匹配时设置。最优雅的方式是使用条件运算符?:

    <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&lt;Category&gt;,其中Category 具有idname 属性。

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

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

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多