2

我的 JSP 页面中有一个 HTML 选择框,它允许进行多项选择。

<form action="resources" method="post" >
    <select name="frmSelectedResources" multiple="multiple">
        <option value="1">Bill</option>
        <option value="3">Kathy</option>
        <option value="18">Mike</option>
    </select>
</form> 

在我的 Java servlet 中,我可以通过以下方式获取所选资源的值:

String[] assignedResources = request.getParameterValues("frmSelectedResources");

这给了我一个 1,3,18 的字符串数组。但是我怎样才能检索每个这些值的文本呢?

我需要找回这样的东西:(1,Bill),(3,Kathy),(18,Mike)

我正在尝试做的是在我进行表单验证并且用户在表单的其他地方输入数据错误时重建选定资源列表。

提前感谢您的任何帮助或建议。

4

3 回答 3

4

创建一些字符分隔键,同时填充 SELECT 选项。

<form action="resources" method="post" >
    <select name="frmSelectedResources" multiple="multiple">
        <option value="1:Bill">Bill</option>
        <option value="3:Kathy">Kathy</option>
        <option value="18:Mike">Mike</option>
    </select>
</form> 

使用它

String[] assignedResources = request.getParameterValues("frmSelectedResources");
if (assignedResources != null) {
    for(String item: assignedResources){
        String keyValue[]= item.split(":");
        out.println("Key: " + keyValue[0]);
        out.println("Value: " + keyValue[1]);
    }
}
于 2012-08-21T05:15:08.090 回答
2

您无法从请求参数接收它(除非您明确设置它),浏览器只发送选择项的值而不是标签,它使用标签只是为了显示

有一个从收到的值解析标签的地图

于 2012-08-20T17:30:38.453 回答
0

你只会得到价值。如果你想要文本,其中一种方法可能是将值更改为类似的东西"1-Bill",然后在 servlet 中解析它。

于 2012-08-20T17:30:29.277 回答