【问题标题】:I am not getting the desired output as in this example我没有像本示例中那样获得所需的输出
【发布时间】: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


【解决方案1】:

您可以在此处实现嵌套表单或多个单独的表单。

【讨论】:

  • 我不能说它不起作用,因为我没有测试它但是as it can be read here,在一个表单中提交多个似乎没有任何后果
  • 在每个按钮周围添加相同的表单。
  • 我不确定重复代码是否是解决方案。我不认为 HTML 是问题,因为它尊重约定并且只发送按下的提交按钮。问题一定来自他在服务器端读取数据的方式
  • 我不是该主题的作者。但我同意你的看法,他绝对应该在 servlet 中观察他的变量的状态。希望他能回来并结束这个帖子
猜你喜欢
  • 2016-10-22
  • 2017-01-26
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 2015-05-16
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多