如何在JSP中特定按钮的单击/提交事件上调用特定Java方法?
我的Java文件是:如何在JSP中特定按钮的单击/提交事件上调用特定Java方法?,jsp,servlets,Jsp,Servlets,我的Java文件是: public class MyClass { public void method1() { // some code } public void method2() { //some code } public void method3() { //some code } } 在我的JSP页面中,我有三个HTML按钮 如果单击button1,则只调用method
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
,依此类推
我如何才能做到这一点?
<form method="post" action="servletName">
<input type="submit" id="btn1" name="btn1"/>
<input type="submit" id="btn2" name="btn2"/>
</form>
按下它时,请求将转到servlet页面上的servlet,检查按下了哪个按钮,然后相应地调用所需的方法作为objectName。method您可以尝试在每个按钮上添加action=“#{yourBean.function1}”(当然可以更改方法function2、function3或您需要的任何内容)。
如果这不起作用,可以对onclick事件进行同样的尝试
无论如何,如果您告诉我们您想使用什么类型的按钮,a4j:commandButton或您正在使用的任何按钮,都会更容易为您提供帮助。只需为各个按钮元素指定一个唯一的名称即可。按下按钮时,按钮的名称可用作请求参数,通常的方式与输入元素相同 您只需确保按钮输入有
type=“submit”
和
中的type=“submit”
和而不是type=“button”
,这只会为单击内容和所有内容呈现一个“死”按钮
例如
与
或者,使用
而不是
,然后您可以为它们提供相同的名称,但具有唯一的值。
的值不会用作标签,您可以将自己指定为子项
例如
按钮1
按钮2
按钮3
与
另见:
如果您有web.xml,那么
HTML/JSP
<form action="${pageContext.request.contextPath}/myservlet" method="post">
<input type="submit" name="button1" value="Button 1" />
</form>
您将请求提交到Servlet,并有条件地从Servlet调用所需函数。您不能直接这样做,因为JavaScript在客户端运行,JSP在服务器端运行,因此您需要将请求提交到Servlet,Servlet将进行处理并返回结果。您可以使用AJAX异步执行它。这是一项培训任务吗?您是否计划使用web框架?您是否可以仅从家用计算机上的internet页面进行此测试,而不必使用服务器。我可以在我的桌面上制作一个页面,然后用它来调用一个类中的一个方法,这个类将调用一个java方法吗?在过去的六个月里,我用了很多java,所以我对代码相当熟悉。然而,我没有开发任何使用java类调用按钮的页面。我可以用公共方法创建类,然后让我的网页用JQuery或其他中间语言调用每个方法吗?@DougHauf您可以使用servlet来实现这一点。javascript可以使用Servlet post和get方法。这篇文章将让你大致了解它的工作原理
@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);
}
}
<form action="${pageContext.request.contextPath}/myservlet" method="post">
<input type="submit" name="button1" value="Button 1" />
</form>
<servlet>
<display-name>Servlet Name</display-name>
<servlet-name>myservlet</servlet-name>
<servlet-class>package.SomeController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Write your code below");
}