如何获取java中字符串数组中的所有下拉值?

时间:2015-01-31 07:14:17

标签: java html arrays servlets html-select

我知道这是一个非常基本的问题,但我无法跟踪错误

这是我的下拉列表

<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");

但我只能获得第一个选项值....

我想要所有的值

4 个答案:

答案 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>