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

我的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"in <input type="submit"><buttontype="submit">and 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>将不会用作标签,您只需将自己指定为孩子即可。

例如

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

}

}

以上是 如何在JSP中特定按钮的单击/提交事件上调用特定Java方法? 的全部内容, 来源链接: utcz.com/qa/415315.html

回到顶部