如何在Java中将所有下拉菜单值获取为字符串数组?

3

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

这是我的下拉列表。

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

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

我想要所有的值


你可能只选择了第一个元素? - SMA
在选择选项时,请使用 Ctrl+单击 - Vighanesh Gursale
4个回答

1
<select> 控件添加 multiple 属性。
<select name="prodnd" id="prodnd" multiple size="3">

确保您使用 CTRL + 单击 选择多个值。


不要使用 <select> 控件发送隐藏数据。请使用 <input type="hidden" ... >

<input type="hidden" name="prodnd" id="prodnd" value="Andorra,Antarctica,Bulgaria" />

然后在Servlet中,将这些值简单地拆分回数组,如下所示:

String[] prodnd = request.getParameter("prodnd").split(",");

实际上,我想把它隐藏起来,在表单提交时将所有值发送到servlet.....我使用这个下拉框来存储用户看不到的值...所以用户不会从下拉列表中选择任何东西...它只是用于在服务器端发送值..... - Nishant123
谢谢,这解决了问题...我会加上.split(',')方法将所有的值放入一个数组中。 - Nishant123

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>

0

<select>标签需要选择单个元素(通过JS或用户交互来查找它将发送的数据)。

<input type="hidden">可能有效,但是您将不得不将其转换为数组或结构,因为您将其作为字符串接收。

JSON或序列化数据也可能是其他选项。

我想知道使用情况可能是什么。如果您正在尝试在用户会话中保留数据,则您的servlet中的Session属性可能是更好的选择。


-1
使用select标签中的multiple属性。
<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>

由于您没有理解所要求的内容,请仅返回翻译后的文本。 - Murtaza Khursheed Hussain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接