1

jsonの簡単な例をタイリングしていますが、エラーが表示されています。クラスパスに gson-2.2.3.jar を含めました。

私はネットビーンズ7.1を使用しています。このプログラムはデプロイされていません。

Apache tomcat のログは次のように表示されます。

 Unable to load configuration. - action - file:/D:/APP/webApp1/build/web/WEB-INF/classes/struts.xml:10:73
Caused by: Error building results for action sayHi in namespace  - action - file:/D:/APP/webApp1/build/web/WEB-INF/classes/struts.xml:10:73
Caused by: There is no result type defined for type 'json' mapped with name 'success'.  Did you mean 'json'? - result - file:/D:/APP/webApp1/build/web/WEB-INF/classes/struts.xml:11:33

簡単な例を試しています。何が問題なのか見てください。アクションクラス

 public class AjaxActions extends ActionSupport {

    private String name;
    private String greeting;

    public String sayHi() {

        greeting = "HI " + name;
        return ActionSupport.SUCCESS;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGreeting() {
        return greeting;
    }

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

Struts.xml

<package extends="struts-default,json-default" name="ajax-package" namespace="/ajax">
    <action class="example.AjaxActions" method="sayHi" name="sayHi">
        <result type="json">
        </result>
    </action>
</package>

jspファイルで

<form action="" id="introForm">
            <label for="name">Enter Your Name</label>
            <input name="name">
            <input type="submit">
        </form>
        <script>
            $(function(){

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

                var formInput=$(this).serialize();
                $.getJSON('ajax/sayHi.action', formInput,function(data) {

                $('.result').html('' + data.greeting + '');
                return false;

                });

            });
        </script>
4

1 に答える 1

1

struts2-json-plugin.jarプロジェクト ライブラリの struts2 バージョンに従って追加します。struts2.3.4 を使用している場合は、struts2-json-plugin2.3.4.jar を使用します

そして、あなたの中であなたを変えてくださいstruts.xml

<package extends="struts-default,json-default"<package extends="json-default"

そして、次の html コードを使用します。

    <form action="" id="introForm">
                <label for="name">Enter Your Name</label>
                <input type="text" id="name" name="name">
                <input onclick="javascript:getResultData();" type="submit">
           <span id="resultHtml"></span>
 </form>
            <script>
                function getResultData(){
                    var formInput=$("#name").val();
                    vat inputData={"name":formInput}
                    $.getJSON('ajax/sayHi.action', inputData,function(data) {

                    $("#resultHtml").html('' + data.greeting + '');
                    return false;

                    });
                   }

            </script>
于 2013-07-06T09:13:08.187 に答える