【问题标题】:Call java method on button click单击按钮时调用java方法
【发布时间】:2015-02-12 10:32:55
【问题描述】:

在 JSP 中是否可以通过按钮 onclick 调用 Java 中的方法?

例如:

Java:

@UrlBinding("/Student/import.action")
public class StudentAction implements ActionBean {

  public void testMe() {
      //do something
    }
}

JSP

<stripes:form beanclass="com.example.action.StudentAction">
   <input type="button" value="Test" onClick="call testMe"/>
</stripes:form>

我在 Internet 上阅读了一些可以通过 Ajax/jQuery 完成的帖子,但我不明白他们是如何做到的。我只知道它应该是这样的:

$.ajax({
    type:"POST"
    url: 
})

$(document).ready(function() {
    $("#button").click(function(){

    })
})

有没有其他方法可以做到这一点,如果没有,我希望能简单解释一下如何使用 Ajax/JQuery 做到这一点。

注意:我不想使用提交输入或条纹:提交!

【问题讨论】:

  • 学习有关 Ajax、HTTP 和 JSP 的基础知识怎么样?

标签: java javascript jquery ajax jsp


【解决方案1】:

它不会调用Java方法,你必须写Servlet然后在表单提交或使用ajax调用时调用ServletdoGet()doPost()方法。 refer this example

【讨论】:

  • 在使用 servlet 框架 时编写纯 servlet 对我来说似乎是个坏主意。
【解决方案2】:

如果你有一个ActionBean(它是一个深层的 servlet),你可以用@UrlBinding 将一个 URL 绑定到它(就像你已经做的那样)。您只需在按钮的'click' 事件处理程序中使用 Ajax 向该 URL 发出 HTTP 请求。

所以你可以有这个标记:

<stripes:form beanclass="com.example.action.TestMeActionBean">
    <input type="button" value="Test" onClick="testMe()"/>
</stripes:form>
<script>
function testMe () {
    $.ajax({
        type: 'post',
        url: 'action/testMeAction',
        ...
    });
}
</script>

在服务器端,你只需要创建处理动作:

@UrlBinding("/action/testMeAction")
public TestMeActionBean implements ActionBean {

在此之后,您只需要编写一个处理程序方法。例如,使用您的方法声明:

    @DefaultHandler
    public void testMe() {
        //do something
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多