如何在JSP中将值从文本字段获取到Java

时间:2018-10-19 07:42:41

标签: java html jsp jstl

如何添加基于用户输入的配料数量来生成文本字段的功能。

 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 :(得分:0)

尝试使用HttpServletRequest的getParameterNames()API读取当前HTTP请求中可用的所有参数,该API会列出所有参数。

使用基于正则表达式的匹配项(示例正则表达式:“ Ingredient [0-9] *” )过滤以“ Ingredient”开头的前缀和后缀“ digits”的参数

答案 1 :(得分:0)

您可以为所有输入指定相同的名称。

 <input type="text" name="Ingredient">

然后在您的servlet中,可以使用以下命令将所有值作为数组获取:

String[] ingredients = request.getParameterValues("Ingredient");

如果需要使用自己的名称发送每个值,那么还可以将intValue的大小作为隐藏输入发送到servlet。然后根据大小,获取如下参数:

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);
        ...
    }
}