如何添加基于用户输入的配料数量来生成文本字段的功能。
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>
答案 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);
...
}
}