【发布时间】:2010-12-17 17:21:38
【问题描述】:
我根据某些文件名动态命名一组复选框(用户正在选择要包含的文件以进行某些处理)。
有没有办法可以检索文件名,或者我需要将它们保存到某种会话对象中,然后使用检索到的值(来自会话对象)来检索复选框的值。
简而言之,我真正想要的是知道哪些复选框已被单击以及它们对应的文件名,任何解决方案都可以。
【问题讨论】:
标签: java jsp servlets checkbox
我根据某些文件名动态命名一组复选框(用户正在选择要包含的文件以进行某些处理)。
有没有办法可以检索文件名,或者我需要将它们保存到某种会话对象中,然后使用检索到的值(来自会话对象)来检索复选框的值。
简而言之,我真正想要的是知道哪些复选框已被单击以及它们对应的文件名,任何解决方案都可以。
【问题讨论】:
标签: java jsp servlets checkbox
您的 HTML 是什么样的?我希望像这样的复选框:
<li><input id='0001' type='checkbox' name="files[]" value="file1"/>/xyz/file1</li>
<li><input id='0002' type='checkbox' name="files[]" value="file2"/>/xyz/file2</li>
<li><input id='0003' type='checkbox' name="files[]" value="file3"/>/xyz/file3</li>
<li><input id='0004' type='checkbox' name="files[]" value="file4"/>/xyz/file4</li>
name 将与提交时检查的任何值相关联。在这里,我使用了 files[],因为这是 PHP 所要求的,我没有在 servlet 中这样做。
【讨论】:
您是在做所有这些服务器端还是使用 java-script 客户端?
如果都是服务器端,为什么不在动态命名时在名称前面加上复选框:
<input type="checkbox" name="checkbox_someRandomeName" value="something" />
然后您可以循环发布的变量并查看名称是否以“复选框”开头:
ParameterMap paramMap = request.getParameterMap();
// Loop through the list of parameters.
Iterator y = paramMap.keySet().iterator();
while (y.hasNext()) {
String name = (String) y.next();
if name.startswith("checkbox"){
// do something
}
}
【讨论】:
使用唯一的id,但使用相同的name。然后您将能够使用getParameterValues(name) 或getParameterMap() 或ServletRequest。请记住,您只会得到选择的内容。
【讨论】:
name 并使用getParameterValues() 访问他们。顺便说一下,这里有些 PHP 人注意到了,不需要大括号符号。