我有一张桌子里面的表格。每一行都有提交类型的按钮,每个按钮都调用一个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。
任何帮助都会非常感激!
亲切的问候
卢卡斯
答案 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"));
}
}