gpt4 book ai didi

java - 如何将一组隐藏字段发布到 servlet?

转载 作者:行者123 更新时间:2023-11-27 22:32:28 25 4
gpt4 key购买 nike

<form>
<c:forEach var="cartitems" items="${cart.items}">
<input type="hidden" name="productid[]" value="${cartitems.products.productsId}">
</c:forEach>
</form>

上面的代码将生成类似

的 HTML 代码
<input type="hidden" value="1" name="productid[]">
<input type="hidden" value="5" name="productid[]">

我如何在 servlet 中访问这些值,我已经尝试过但它不起作用:

  String[] productsids = request.getParameterValues("productid");
for(String eachpro : productsids){
out.println("Product values : "+eachpro);
}

有没有其他方法可以完成这项工作

最佳答案

doPost()中获取隐藏输入元素的值作为数组绝对没有问题使用 request.getParameterValues() 的方法.

但是在你的例子中你有一个错误:对于你设置的隐藏输入name="productid[]" , 但在检索您使用的值时

request.getParameterValues("productid") ;

没有索引运算符[]在最后。

我刚刚测试过 获取填充了 <c:forEach> 的多个隐藏值在我的机器上,我在 doPost() 中得到所有那些隐藏的结果使用 `request.getParameterValues("productid[]") 的方法没有任何问题

所以检查一切,似乎你在某处做错了。


关于命名约定的一些不相关的注释

  1. 在Java web开发中,不像PHP,索引并不常见运算符(operator) []input 名称的末尾或任何其他 HTMLJSP 中的元素,就像您对 productid[] 所做的一样,虽然它工作正常。因此,为隐藏的输入元素命名,例如
    <input type="hidden" name="productId" value="123" />
    会更自然/常见。但这又是您的选择

  2. <c:forEach>标记,给出一个会更直观var 的值使用 singular 的属性,加上使用 camelCase也会更像 Java 方式,比如
    <c:forEach var="cartItem" items="${cart.items}">

关于java - 如何将一组隐藏字段发布到 servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16739192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com