Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaServlet-从HTML选择多个_Java_Jsp_Servlets - Fatal编程技术网

JavaServlet-从HTML选择多个

JavaServlet-从HTML选择多个,java,jsp,servlets,Java,Jsp,Servlets,我的JSP页面中有一个HTML选择框,可以进行多种选择 <form action="resources" method="post" > <select name="frmSelectedResources" multiple="multiple"> <option value="1">Bill</option> <option value="3">Kathy</option>

我的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> 
这给了我一个1,3,18的字符串数组。但是如何检索这些值的文本呢

我需要找回这样的东西:(1,比尔),(3,凯西),(18,迈克)

当我进行表单验证时,用户在表单的其他地方输入数据时,我试图重建所选资源列表


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

您将只获得价值。如果您想要文本,其中一种方法可能是,将值更改为类似于
“1-Bill”
等的值,并在servlet中解析它。

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


在填充选择选项的同时,创建一个从接收的值解析标签的映射,创建一些字符分隔键

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

JSP如何知道值1应该与“Bill”关联?您不能在服务器端使用相同的代码“查找”值1的标签吗?选择列表是从数据库表生成的。我希望避免请求返回数据库以从选择列表中获取与资源值关联的名称。由于我的资源列表最初是从数据库表中构建的,因此如何创建映射以解析每个接收到的值的文本标签?“我的资源表”中有大约100条记录。如果不是roo frequent,则可以根据从请求参数接收的值直接查询数据库,如果其缓存过于频繁,则在mapI中使用HashMap查找getParameterValues返回的资源ID的显示名。然后,如果发生验证错误,我就能够重建我的选择框。
<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]);
    }
}