gpt4 book ai didi

jsp - 如何在JSP中特定按钮的单击/提交事件上调用特定Java方法?

转载 作者:行者123 更新时间:2023-12-03 10:36:01 25 4
gpt4 key购买 nike

我的Java文件是:

public class MyClass {

public void method1() {
// some code
}

public void method2() {
//some code
}

public void method3() {
//some code
}
}

在我的JSP页面中,我有三个HTML按钮。

如果单击 button1,则仅会调用 method1;如果单击 button2,则仅会执行 method2;如果单击 button3,则只会执行 method3,依此类推。

我该如何实现?

最佳答案

只需给各个按钮元素一个唯一的名称即可。按下按钮时,按钮的名称可用作请求参数,就像输入元素一样。

您只需要确保按钮输入具有type="submit"即可,就像<input type="submit"><button type="submit">一样,而不是 type="button",仅为onclick和所有内容呈现一个“死”按钮。

例如。

<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.method1();
} else if (request.getParameter("button2") != null) {
myClass.method2();
} else if (request.getParameter("button3") != null) {
myClass.method3();
} else {
// ???
}

request.getRequestDispatcher("/WEB-INF/some-result.jsp").forward(request, response);
}

}

另外,也可以使用 <button type="submit">而不是 <input type="submit">,然后为它们指定相同的名称,但使用唯一的值。 <button>的值将不会用作标签,您只需将自己指定为 child 即可。

例如。

<form action="${pageContext.request.contextPath}/myservlet" method="post">
<button type="submit" name="button" value="button1">Button 1</button>
<button type="submit" name="button" value="button2">Button 2</button>
<button type="submit" name="button" value="button3">Button 3</button>
</form>


@WebServlet("/myservlet")
public class MyServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
MyClass myClass = new MyClass();
String button = request.getParameter("button");

if ("button1".equals(button)) {
myClass.method1();
} else if ("button2".equals(button)) {
myClass.method2();
} else if ("button3".equals(button)) {
myClass.method3();
} else {
// ???
}

request.getRequestDispatcher("/WEB-INF/some-result.jsp").forward(request, response);
}

}

也可以看看:
  • Servlet returns "HTTP Status 404 The requested resource (/servlet) is not available"
  • How do I pass current item to Java method by clicking a hyperlink or button in JSP page?
  • 关于jsp - 如何在JSP中特定按钮的单击/提交事件上调用特定Java方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14723812/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com