Как получить значение из текстового поля в java в jsp

Как добавить функцию создания текстовых полей на основе ввода количества ингредиентов, введенного пользователем.

 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>
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
123
2

Ответы 2

Попробуйте прочитать все параметры, доступные в текущем 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);
        ...
    }
}

Другие вопросы по теме