0

HTML 文件

<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

    var $ = jQuery;
    $(function(){
        $("#introForm").submit(function(){

            $.getJSON('ajax/test.action', formInput,function(data){    
                alert(data.greeting);
            });

            return false;
        });
    });
</script>
</head>
<body>
<form  id="introForm">
    <label >Enter Your Name</label>

    <input type="submit">
</form>

</body>
</html>

Struts.xml 动作

 <package  extends="json-default" name="jsonStruts2" namespace="/ajax" >
    <action name="test" class="com.vrde.daems.action.TestAction" method="sayHello">
        <result type="json"></result>
    </action>
</package>

Java 类(TestAction.java)

public class TestAction {
    private String greeting;

    public String getGreeting() {
        return greeting;
    }

    public void setGreeting(String greeting) {
        this.greeting = greeting;
    }

    public String sayHello()
    {
        greeting = "Hello Ajax";
        return "success";
    }
}

sayHello()当我点击提交按钮时,方法没有被调用..但是当我直接输入 url 时,浏览器上会显示 json 格式的内容localhost:8000/ajax/test 谁能告诉我有什么问题吗?

4

4 回答 4

0

将您的输入更改为像这样的按钮<input id="btn_send" type="buttom">和您的脚本

$("#btn_send").click(function(){

   $.getJSON('ajax/test.action', $('#formInput').serialize(), function(data){    
        alert(data.greeting);
   });
});
于 2013-03-31T21:29:50.220 回答
0

这是因为formInput在您的脚本中未定义。您需要将其从getJSON.

<script type="text/javascript">
   var $ = jQuery;
   $(function(){
     $("#introForm").submit(function(){
        $.getJSON('ajax/test.action', function(data){
            alert(data.greeting);
        });
        return false;
     });
   });
</script>
于 2012-12-12T21:43:47.310 回答
0

尝试

<script type="text/javascript">

var $ = jQuery;
$(function(){

    $("#introForm").submit(function(){


        $.getJSON("<s:url action='test' namespace='ajax' includeParams='none' />", formInput,function(data){

            alert(data.greeting);
        });

        return false;

    });

});

于 2012-12-12T19:45:23.370 回答
0
<script type="text/javascript">
    var $ = jQuery;
    $(function(){
        $("#introForm").submit(function(){
            $.getJSON('./test.action', formInput,function(data){
                alert(data.greeting);
            });

            return false;
        });
    });
</script>

如果您在同一个控制器中引用操作,这将起作用......

于 2012-12-12T18:43:23.940 回答