如何在获取参数的同时在Servlet中将String转换为ArrayList

时间:2019-04-28 22:45:44

标签: java servlets java-ee

enter image description here

我正在检索用户购买的产品列表,但是由于构造器产品的类型为List,所以出现错误。我不知道如何转换

String buyer = request.getParameter("buyer");
List prodlist = request.getParameter("product");
Bill bill = new Bill(buyer, prodlist);

这是构造函数的代码

    public Bill(String buyer, List<Product> product) {
        super();
        this.buyer = buyer;
        this.product= product;
    }

Product类的属性

    private int id;
    private String name;
    private float price;

1 个答案:

答案 0 :(得分:0)

(编辑:使用对象类。)

任何一个

String[] products = request.getParameterValues("product");
List<Product> prodlist = new ArrayList<>();
for (String productName : products) {
    Product product = loadProduct(productName); // Or such
    prodlist.add(product);
}

或使用

List<String> prodlist = Arrays.asList(request.getParameterValues("product"));

getParameterValues用于同一参数"product"的多个值是可能的。通常,这是String[]getParameter(String)方法用于仅出现一次的参数;实际上是一种特殊情况。

对于URL "http: ... my.html?product=pc&product=phone&product=tablet",结果相同。

您应该检查HTML是否确实包含多个<input name="product">,也许使用浏览器开发人员工具,通常由F12在浏览器中引起。