2009-11-18 27 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中做過。

相關問題