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

发布于 2024-10-22 13:13:51 字数 963 浏览 1 评论 0原文

再会!

我在 html 中的选择框上遇到问题。我位于简单 CRUD 项目的编辑部分,在用户可以编辑之前,将首先显示所选数据,然后我通过 servlet 在数据库中检索它。

现在我希望我检索的数据成为我的选择框中选定的数据(默认)。 ${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>

我想做这样的事情.. If (${product.category}==1), selected=option 1...

我见过类似 在一个论坛中,但它是 PHP 格式。我该如何使用 JSP 来做到这一点?

非常感谢。

Good day!

I am having a problem with the select box in html. I am on the EDIT portion of my simple CRUD project and before users can edit, the chosen data will be shown first and I retrieved it in the database through the servlet.

Now I want the data I retrieve be the one SELECTED (default) in my select box. ${product.category}

<select size="1" name="category">
        <option value ="1">Dogs</option>
        <option value ="2">Cats</option>
        <option value ="5">Others</option>
</select>

I tried inserting it like this but it doesn't work.

<select size="1" name="category" selected=${product.category}>
        <option value ="1">Dogs</option>
        <option value ="2">Cats</option>
        <option value ="5">Others</option>
</select>

I want to do something like this.. If (${product.category}==1), selected=option 1...

I've seen something like THIS in one of the forums but it is in PHP format. How can I do it using JSP?

Thank you very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

命比纸薄 2024-10-29 13:13:52

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

<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 具有 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>

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

The selected attribute has to go on the HTML <option> element and it should only be set when the option value matches. Most elegant way is to use the conditional operator ?:.

<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>

Better would be if you have the items in some List or Map. E.g. a List<Category> where Category has id and name properties.

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

This way you don't need to repeat the same thing for all options.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文