我的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)
我正在尝试做的是在我进行表单验证时重建Selected Resource列表,并且用户在表单的其他位置发生了数据输入错误。
提前感谢您的任何帮助或建议。
答案 0 :(得分: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]);
}
}
答案 1 :(得分:2)
您无法从请求参数接收它(除非您明确设置它),浏览器只发送选择项的值而不是标签,它只使用标签显示
制作一张可以从收到的价值中解析标签的地图
答案 2 :(得分:0)
您只会获得价值。如果你想要文本,可以是其中一种,将值改为"1-Bill"
等,并在servlet中解析它。