как конвертировать String в ArrayList в сервлете при получении параметра - PullRequest
0 голосов
/ 29 апреля 2019

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 голосов
/ 29 апреля 2019

(Отредактировано: с использованием класса объекта.)

Или

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 внутри браузера.

...