2013-07-08 51 views
1

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

<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> 

我在lib文件夹中包含jsonplugin-0.34.jar Action类

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页面。

程序运行正常,没有显示任何错误。 我在这里试图从<div class="result"></div>的行动中获取welcomeMessage

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

警报alert(data);$.getJSON('test', { name: name1}, function(data) {内不打电话。 请看看问题出在哪里。

+0

您使用的是哪个版本的Struts? –

+0

我正在使用'Struts 2.3.4' – user2302288

+1

然后使用该版本的'struts2-json-plugin'。 –

回答

1

你的代码是好的(除非<input> s不是(自己)关闭的,并且对于身体中的脚本应该保持在$(document).ready()片段中的头部);

我猜你都被简单地由S2 JSON插件的下载页面上当。该页面是旧的和无人维护的,0.32和0.34是真的旧版本;

请务必参阅Maven仓库此:

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

,一定要拿起版本符合Struts2的核心JAR的一个。

+0

感谢您的回复,并指出错误,工作 – user2302288

+0

我已经包含了'Struts2的JSON的 - 插件 - 2.3.4.jar'。现在这个程序是完美的。 – user2302288

+0

不客气。如果有帮助,不要忘记加注/接受 –