如何确定哪个提交类型按钮调用servlet

时间:2017-04-12 22:38:46

标签: html servlets

我有一张桌子里面的表格。每一行都有提交类型的按钮,每个按钮都调用一个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(“name”)或req.getParameter(“name”),但它们都返回null。

我想做一些会返回按钮名称的内容,即:示例中的button1,button2或button3。

任何帮助都会非常感激!

亲切的问候

卢卡斯

1 个答案:

答案 0 :(得分: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>

爪哇

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"));
    }
}