JSON没有显示价值

时间:2013-07-08 07:41:27

标签: jquery json jsp struts2

我正在使用struts2和jquery从服务器获取值。这里execute()方法正确调用,但是没有显示jsp值。

动作类

 package example;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {

    private String name;
    private String welcomeMessage;

    @Override
    public String execute() {

        System.out.println("Inside Action name is " + getName());
        setWelcomeMessage("Welcome " + getName() + "!!");
        System.out.println(getWelcomeMessage());
        return SUCCESS;
    }

    public String getName() {
        return name;
    }

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

    public String getWelcomeMessage() {
        return welcomeMessage;
    }

    public void setWelcomeMessage(String welcomeMessage) {
        this.welcomeMessage = welcomeMessage;
    }
}

struts.xml中

 <package name="example1" extends="json-default">
        <action name="test" class="example.HelloWorld">
            <result  type="json"></result>
        </action>
    </package>

Jsp页面

<html>
    <head>
        <title>JSON EXAMPLE</title>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    </head>
    <body>
        <form action="" id="introForm">
            <label for="name">Enter Your Name</label>
            <input name="name" id="name">
            <input type="button" id="button1" value="Submit">
        </form>
        <div class="result"></div>
        <script>
            $("#button1").click(function() {

                var name1=$("#name").val();
                alert("name is "+name1);//showing entered name
                $.getJSON('test', { name: name1}, function(data) {
                    alert(data); // not calling
                    $('.result').html(data.welcomeMessage);
                    return false;
                });
            });
        </script>
   </body>
</html>

我已将jsonplugin-0.34.jar包含在我的lib文件夹中。

程序正常执行,未显示任何错误。 在这里,我尝试从welcomeMessage中的操作中获取<div class="result"></div>

问题是它没有在jsp页面中显示JSON值。

alert(data);内的提醒$.getJSON('test', { name: name1}, function(data) {未调用。 请看问题在哪里。

1 个答案:

答案 0 :(得分:1)

你的代码没问题(除了<input>不是(自我)关闭的,以及正文中应该留在$( document ).ready()片段内的脚本的代码;

我猜你只是被S2 JSON插件的下载页面所迷惑。该页面陈旧且无需维护,0.32和0.34是旧版本;

总是引用Maven存储库:

  

http://mvnrepository.com/artifact/org.apache.struts/struts2-json-plugin

并确保选择与您的struts2-core JAR匹配的版本。