首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

ajax 无法获json的数据?啥原因啊解决方案

2012-01-30 
ajax 无法获json的数据??啥原因啊...我的开发环境:struts2.1.8.1、struts2-plugin-json-2.1.8.1Java codes

ajax 无法获json的数据??啥原因啊...
我的开发环境:struts2.1.8.1 、struts2-plugin-json-2.1.8.1

Java code
    <script type="text/javascript">     $(function(){          $("#hotel").bind("change",function(){              var hotel=$("#hotel").val();                 alert(hotel);              $.ajax({                  url :'bedajax_getRoom.action',                    type:'post',                  data:'hotelId='+$("#hotel").val(),          dataType:'json',          success:function(json){                var roomList=json.roomList;                   var html = "";                      html+="<table><tr><td>房间编号:</td><td>"+roomList.roomCode+"</td></tr></table>";                    $("#showRoom").html(html);                  }               });              })          })    </script>



 <package name="ajax" extends="json-default">  
  <action name="bedajax_*" class="bedAction" method="{1}">

  <result type="json"></result>
</action>
  </package>  

Java code
public  String getRoom() throws Exception{         HttpServletRequest request=ServletActionContext.getRequest();         String hotelId=request.getParameter("hotelId");          Long hotel=Long.parseLong(hotelId);        roomList=bedService.roomsSelected(hotel);        return SUCCESS;    }


=========================================================================================

ajax可以进到action里,但是回到函数获取不到东西....
success:function(json){
  var roomList=json.roomList;
  var html = "";
  html+="<table><tr><td>房间编号:</td><td>"+roomList.roomCode+"</td></tr></table>";
  $("#showRoom").html(html);

  }
何解?

[解决办法]
后台是这样子输出json的 
public String getRoom() throws Exception{
HttpServletReponse response = ServletActionContext.getResponse();
response.getWrite().print(json);
response.getWrite().close();
return null;
}
[解决办法]
探讨
引用:
后台是这样子输出json的
public String getRoom() throws Exception{
HttpServletReponse response = ServletActionContext.getResponse();
response.getWrite().print(json);
response.getWr……

[解决办法]
success:function(json){
或者JSON Plugin,它可以将Struts2 Action中的结果直接返回为JSON
[解决办法]
或者getJson()
[解决办法]
这个东西~~~我也不是很清楚!!!配置有很多种!方法也好像有很多种!
如果LZ知道~~~希望结贴的时候给好好总结总结、在分享分享!
下面是我以前做的一个! http://blog.csdn.net/hzw2312/archive/2011/04/14/6322325.aspx
[解决办法]
我没有看到楼主有返回json的代码~~
[解决办法]
1 success:function(json){
alert(json);//能否打出东西
...

2 response.getWrite().print(json);


System.out.println(json);//把json打印出来,看看是否格式正确

3 bedajax_getRoom.action 直接在地址栏访问,看看是否有调用返回
[解决办法]
不明白
[解决办法]
既然都用struts2和json整合的jar包了怎么还在action中还这样写?【response.getWriter().print(result)】

我贴一个整合的例子,你可以参考一下:

User.java

Java code
package bean;public class User {    private int id;      private String name;     private String password;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }     }
[解决办法]
用到的jar包:
struts2-json-plugin-2.1.8.1.jar
json-lib-2.1.jar
commons-collections-3.2.jar
commons-beanutils-1.7.0.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
ezmorph-1.0.3.jar
这7个包是返回json形式的数据必须的。因为json大量引用了Apache commons的包,所以要加入4个,commons包,除了commons的包外,还需要引入一个 ezmorph的包。最后加入struts2必须的6个包:
struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar
ognl-2.7.3.jar
freemarker-2.3.15.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
源码可以去这个地址下载http://download.csdn.net/source/3187325

热点排行