metodos metodo llamar formulario ejemplo desde basico jsp servlets button methods

llamar - metodos en jsp



¿Cómo llamo a un método específico de Java al hacer clic/enviar evento de un botón específico en JSP? (3)

Puedes intentar agregar action = "# {yourBean.function1}" en cada botón (cambiando por supuesto el método function2, function3, o lo que sea que necesites). Si eso no funciona, puede intentar lo mismo con el evento onclick.

De todos modos, sería más fácil ayudarte si nos dices qué tipo de botones estás tratando de usar, a4j: commandButton o lo que sea que estés usando.

Mi archivo Java es:

public class MyClass { public void method1() { // some code } public void method2() { //some code } public void method3() { //some code } }

En mi página JSP tengo tres botones HTML.

Si hago clic en el botón button1 , entonces solo se llamará al button2 , si hago clic en el button2 , solo se ejecutará el button3 , y si el button3 , entonces solo el method3 , y así sucesivamente.

¿Cómo puedo conseguir esto?


<form method="post" action="servletName"> <input type="submit" id="btn1" name="btn1"/> <input type="submit" id="btn2" name="btn2"/> </form>

al presionarlo, la solicitud irá a servlet en la página de servlet, compruebe qué botón se presiona y luego llame al método necesario como objectName.method


Simplemente déle a los elementos de botón individuales un nombre único. Cuando se presiona, el nombre del botón está disponible como un parámetro de solicitud de la manera habitual como con los elementos de entrada.

Solo necesita asegurarse de que las entradas del botón tengan type="submit" como en <input type="submit"> y <button type="submit"> y no type="button" , que solo representa un "dead" botón puramente para hacer clic en cosas y todo.

P.ej

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

con

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

Alternativamente, use <button type="submit"> lugar de <input type="submit"> , luego puede darles el mismo nombre, pero un valor único. El valor del <button> no se usará como etiqueta, puede especificarlo usted mismo como hijo.

P.ej

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

con

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

Ver también: