【发布时间】:2015-05-26 11:09:57
【问题描述】:
<form action="${pageContext.request.contextPath}/myservlet" method="post">
<input type="submit" name="button1" value="Button 1" />
<input type="submit" name="button2" value="Button 2" />
<input type="submit" name="button3" value="Button 3" />
</form>
与
@WebServlet("/myservlet")
public class MyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
MyClass myClass = new MyClass();
if (request.getParameter("button1") != null) {
myClass.function1();
} else if (request.getParameter("button2") != null) {
myClass.function2();
} else if (request.getParameter("button3") != null) {
myClass.function3();
} else {
// ???
}
request.getRequestDispatcher("/WEB-INF/some-result.jsp").forward(request, response);
}
}
我没有像本例那样获得所需的输出。该方法通过 servlet 独立运行,但这些 if else 条件不起作用。
【问题讨论】:
-
期望的输出是什么,运行的是什么?
-
你想要的输出是什么?
-
期望的输出:点击 button1 时,函数 1 被执行,点击 button2 时,function2 被执行。我得到了什么:单击按钮没有任何反应。但是,如果我不设置这个“if else”条件,而是只设置任何一个函数调用,那么该特定函数会在按下两个按钮中的任何一个时运行。
-
您应该尝试 System.out 的 getParameter() 映射的内容。了解提供给您的 Servlet 的内容;或者使用调试工具
-
我做到了。我将 NULL 作为参数的值。
标签: java jakarta-ee servlets