2017-04-12 21 views
0

我有一個表格裏面的表格。每行都有提交類型的按鈕,每個按鈕都調用一個servlet。 每個按鈕都有不同的名稱屬性,但按鈕上的標籤是相同的。如何確定哪個提交類型按鈕調用一個servlet

在被調用的servlet中我想確定哪個按鈕被按下並調用該servlet。

<form method='POST' action='/Assignment/DateRequestServlet' name='daterequestform'> 
    <table padding = '5' border = '1'> 
      <tr> 
       <td> 
        <button name='button1' type='submit'> Request Date</button> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <button name='button2' type='submit'> Request Date</button> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <button name='button3' type='submit'> Request Date</button> 
       </td> 
      </tr> 
    </table> 
</form> 

在servlet我試圖req.getAttribute( 「名稱」)或req.getParameter( 「名稱」),但它們都返回空。

我想做一些將返回按鈕的名稱,即:本例中的button1,button2或button3。

任何幫助將非常感謝!

親切的問候

盧卡斯

回答

0

包括在你的按鈕 「值」:

<button name='button1' type='submit' value='first_one'> Request Date</button> 

<button name='button2' type='submit' value='second_one'> Request Date</button> 

等。你可以在每個按鈕的基礎上在你的servlet中獲得這個值。請參閱W3Schools reference

編輯: 我提供了一些代碼,爲我的作品:

HTML

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Button Test</title> 
</head> 
<body> 
<form method='POST' action='/buttonHandler' name='daterequestform'> 
    <table padding = '5' border = '1'> 
     <tr> 
      <td> 
       <button name='button' type='submit' value="button1"> Request Date</button> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <button name='button' type='submit' value="button2"> Request Date</button> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <button name='button' type='submit' value="button3"> Request Date</button> 
      </td> 
     </tr> 
    </table> 
</form> 
</body> 
</html> 

的Java

import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet(urlPatterns = "/buttonHandler") 
public class ButtonHandler extends HttpServlet { 

    @Override 
    public void doPost(HttpServletRequest request, HttpServletResponse response) { 
     System.out.println("you pushed button " + request.getParameter("button")); 
    } 
} 
+0

是的,這看起來很完美! –

+0

謝謝!現在,當我在servlet端並執行req.getParameter(「button1」)時,它將返回Request Date,它是按鈕上的標籤,而不是分配給按鈕的值。有任何想法嗎? –

+0

請求日期 請求日期 –

相關問題