我知道这是一个非常基本的问题,但我无法跟踪错误
这是我的下拉列表
<select name="prodnd" id="prodnd" style="display:none">
<option value="Andorra">Andorra</option>
<option value="Antarctica">Antarctica</option>
<option value="Bulgaria">Bulgaria</option>
</select>
我想在servlet中使用所有这些选项值
我在servlet中尝试了getParameterValues
String[] prodn = request.getParameterValues("prodnd");
但我只能获得第一个选项值....
我想要所有的值
答案 0 :(得分:1)
将multiple
属性添加到<select>
控件
<select name="prodnd" id="prodnd" multiple size="3">
然后确保您使用CTRL + click
选择多个值。
<select>
控件来发送隐藏数据。使用<input type="hidden" ... >
作为
<input type="hidden" name="prodnd" id="prodnd" value="Andorra,Antarctica,Bulgaria" />
然后简单地将值拆分回Servlet中的数组
String[] prodnd = request.getParameter("prodnd").split(",");
答案 1 :(得分:0)
<select>
标记需要选择单个元素(通过JS或用户交互来查找它将发送的数据。
<input type="hidden">
可能有效,但是您必须转换为您的数组或结构,因为您将以字符串形式接收它。
JSON或序列化数据也可能是其他选项。
我想知道用例可能是什么。如果您尝试在用户的会话中保留数据,那么您的servlet中的Session attribute
可能是更好的选择
答案 2 :(得分:0)
只需使用隐藏字段:
<input type='hidden' name='prodnd' value='Andorra'/>
<input type='hidden' name='prodnd' value='Antarctica'/>
<input type='hidden' name='prodnd' value='Bulgaria'/>
用户将无法看到它,并且值将被发送到服务器
如果您仍想使用下拉菜单,请将所有选项标记为已选择:
<select name="prodnd" id="prodnd" style="display:none" multiple>
<option value="Andorra" selected>Andorra</option>
<option value="Antarctica" selected>Antarctica</option>
<option value="Bulgaria" selected>Bulgaria</option>
</select>
答案 3 :(得分:-1)
在选择标记中使用多个属性
<form action="servlet" method="post">
<select name="prodnd" multiple>
<option value="Andorra">Andorra</option>
<option value="Antarctica">Antarctica</option>
<option value="Bulgaria">Bulgaria</option>
</select>
<input type="submit">
</form>