Как получить значение из текстового поля в Java в JSP - PullRequest
0 голосов
/ 19 октября 2018

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

 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>

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вы можете присвоить всем входам одно и то же имя.

 <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);
        ...
    }
}
0 голосов
/ 19 октября 2018

Попробуйте прочитать все параметры, доступные в текущем HTTP-запросе, используя API getParameterNames () HttpServletRequest, который должен перечислить все параметры.

Использование сопоставления на основе регулярных выражений (пример регулярного выражения: "Ingredient [0-9] *" ) для фильтрации параметров начинается с "Ingredient" в качестве префикса и суффикса с "цифрами"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...