2009-11-18 47 views
1

我正在根据某些文件名(用户正在选择要包含某些处理的文件)动态命名一组复选框。当动态生成Id值时,如何检索复选框的值

有没有一种方法可以检索文件名或是否需要将它们保存到某种类型的会话对象中,然后使用检索到的值(来自会话对象)检索复选框的值。

总之,我真正想要的是知道哪些复选框已被点击以及它们对应的文件名,任何解决方案都可以。

回答

6

使用唯一id,但是相同name。那么你将能够使用getParameterValues(name)getParameterMap()ServletRequest。请记住,你只会得到选择的内容。

+0

这也是我的直接反应。你击败了我。 – 2009-11-18 03:10:25

+0

事实上,只要给它们所有'name'并使用'getParameterValues()'来访问它们。顺便说一句,有些PHP'er在这里注意到了,没有必要使用大括号。 – BalusC 2009-11-18 03:12:17

+0

最后,我重构了代码并使用reParameterValues()方法获取了所选复选框的列表。这就是我需要的其余代码才能工作,所以一切都很好。谢谢。 – Ankur 2009-11-18 03:15:21

0

你是在做所有这个服务器端还是使用java脚本客户端?

如果它的所有服务器端,为何不预先考虑复选框上的名字时,你动态地为它们命名:

<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 
    } 
} 
+0

这是一个有趣的想法,但醋的上述技术已经提出。 – Ankur 2009-11-18 03:13:59

+0

啊,非常有道理。我假设你使用名称和值属性来存储变量信息,所以你需要保持你的命名结构不变。 – Mark 2009-11-18 03:46:04

0

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

将与提交检查的任何值相关联。在这里,我使用了文件[],因为这是PHP所要求的,我还没有在servlet中做过。

相关问题