Как добавить функцию создания текстовых полей на основе ввода количества ингредиентов, введенного пользователем.
Number of Ingredients:<input id = "noIngred" type = "numbename = "noIngred">
<fmt:parseNumber var = "intValue" value = "${noIngred}" integerOnly = "true"/>
<c:forEach var = "j" begin = "1" end = "${intValue}">
<input type = "text" name = "Ingredient${j}">
</c:forEach>




Попробуйте прочитать все параметры, доступные в текущем HTTP-запросе, используя API getParameterNames () HttpServletRequest, который должен перечислить все параметры.
Используйте сопоставление на основе регулярных выражений (пример регулярного выражения: «Ингредиент [0-9] *»), чтобы отфильтровать параметры, начинающиеся с префикса «Ингредиент» и суффикса с «цифр».
Вы можете дать всем входам одно и то же имя.
<input type = "text" name = "Ingredient">
Затем в вашем сервлете вы можете получить все значения в виде массива с помощью:
String[] ingredients = request.getParameterValues("Ingredient");
Если вам нужно отправить каждое значение с собственным именем, вы также можете отправить размер intValue на свой сервлет в качестве скрытого ввода. И в зависимости от размера получить такие параметры:
ArrayList<String> ingredients = new ArrayList<String>();
for(int x = 0; x < intValue.size();x++){
String name = "Ingredient"+x;
String ingredient = request.getParameter(name);
...
}
Другой способ сделать это - получить все параметры в виде карты:
Map<String, String[]> parameters = request.getParameterMap();
Чтобы просмотреть их, выполните следующие действия:
for(String parameter : parameters.keySet()) {
if (parameter.contains("Ingredient")) {
String[] values = parameters.get(parameter);
...
}
}