2012-06-29 41 views
0

我知道如何檢測哪個提交按鈕被點擊,當我知道每個按鈕的name值。但是如果name是動態的或由另一個組件定義呢?如何檢測名稱未知時點擊哪個提交按鈕?

例如,在這裏我可以簡單地檢查從這個<form> POST數據對於任何alphabravo

<form> 
    <input type="submit" name="alpha" value="Alpha"> 
    <input type="submit" name="bravo" value="Bravo"> 
</form> 

但是,這只是因爲我知道我應該尋找那些名字。

是否有處理這種情況的最佳做法? (也許通過渲染元素<input type="hidden" name="submit-button-names" value="dynamic_name1|dynamic_name2|etc">。)我想要一個不需要JavaScript的解決方案。

+0

每個元素都應該有一個與其關聯的ID。 – JonH

+0

正確,但是您無法從POST數據獲取'id'值,您能嗎? (在此之前,我自己並沒有用JSP編碼)。另外,如果它們是動態的,我仍然不知道要查找什麼'id'值。 – craigpatik

回答

0

假設您可以控制顯示這些按鈕的JSP,只需在字符串前加上按鈕名稱即可查找POST數據。例如前面加上「dynamicbutton_」給所有的名字像這樣

<form> 
    <input type="submit" name="dynamicbutton_alpha" value="Alpha"> 
    <input type="submit" name="dynamicbutton_bravo" value="Bravo"> 
</form> 

然後在你的Servlet,尋找與這個前綴值通過調用ServletRequest.getAttributeNames()

0

你可以寫一個自定義標籤,設置不同的輸入您的表單基於您提供給標籤的參數列表。 你會結束與HTML看起來像這樣:

<form method="POST" action="SelectColour.do"> 
    <p>Select your favorite colour: </p> 
    <formTags:select name='colour' size='1' optionsList='${applicationScope.colourList}'/> 
    <input type="SUBMIT" value="Click here to submit"> 
</form> 

Here's一個體面的指導創建自定義標籤。