【问题标题】:Getting a single html list element back to my spring controller将单个 html 列表元素返回到我的 spring 控制器
【发布时间】:2014-11-23 05:17:27
【问题描述】:

我有一个独特的问题 - 我找不到答案或示例。

我有一个显示单个产品的 jsp 页面,用户可以选择尺寸然后将其添加到他们的购物车中,现在我所有的数据库工作都已经完成并且正在工作 - 我正在尝试找到一种方法获取用户选择的尺寸,然后将其转发回我的控制器,该控制器将获取正确类型的产品(用户选择的尺寸)。

这是我的jsp代码

<ul class="options list-unstyled">
    <h4 class="m_9">Select a Size</h4>
    <li><a href="#">S</a></li>
    <li><a href="#">M</a></li>
    <li><a href="#">L</a></li>
    <li><a href="#">XL</a></li>
</ul>

这里是添加到购物车的提交按钮。

<form:form />
    <input type="submit" value="add to cart" title="">
</form:form>

我在想我应该在表单标签中包围 ul 标签,并在 form:input 或者 form:hidden 标签中包围每个 li,这可能吗?

我想避免使用 jquery/javascript 并主要使用 spring java/jsp - 只是因为我时间紧迫,而且完成我需要的学习曲线可能太高,所以页面刷新不是问题。

谢谢

【问题讨论】:

    标签: java spring jsp


    【解决方案1】:

    如果您不想使用 JavaScript 并且不介意刷新,则可以将尺寸作为 URL 参数,并让控制器使用适当的产品刷新当前页面。

    <ul class="options list-unstyled">
        <h4 class="m_9">Select a Size</h4>
        <li><a href="?size=s">S</a></li>
        <li><a href="?size=m">M</a></li>
        <li><a href="?size=l">L</a></li>
        <li><a href="?size=xl">XL</a></li>
    </ul>
    

    在您的控制器中:

    @RequestMapping(value = "/product", params = "size", method = RequestMethod.GET)
    public String getProduct(@RequestParam String size, Model model){
        if ("s".equals(size)) {
            // add small product to model
        } else if ("m".equals(size)) {
            // add medium product to model
        }
        ....
        return "...";
    }
    

    更好的方法是将尺寸放在表单中的select 标记内。控制器会在表单提交时获取尺寸,并相应地插入相应的产品。

    【讨论】:

    • 感谢您的回复,这将有效!我曾考虑过选择标签,但我宁愿它不是一个下拉菜单 - 它当前设置的 [S M L XL] 用户单击其中一个,然后单击添加到购物车按钮 - 在我的情况下,我应该将列表包围在表单中标签?我失去了 jsp 对我的“/product”RequestMapping 的引用。谢谢
    猜你喜欢
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多