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

これは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 に答える