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

struts2 ajax回到null

2013-01-05 
struts2 ajax返回null刚接触ajax和json,遇到点小问题,半天都没解决,希望大侠们支援哪。。。感激万分~~ajax调

struts2 ajax返回null
刚接触ajax和json,遇到点小问题,半天都没解决,希望大侠们支援哪。。。
感激万分~~
ajax调用action顺利执行了,result里有了内容,但页面弹框显示为null或者直接不显示


import org.json.JSONObject;
//result、username的setter、getter方法
public String showUser(){
 List list = userDAO.findByUsername("king");
 System.out.println("userame"+userame);
 
 JSONObject obj=new JSONObject();
 try {
 obj.put("users", list);
 result=obj.toString();
 System.out.println("result: "+result);
                        //显示:result: {"users":[{"userpassword":"king","username":"king","userid":1}]}
 } catch (JSONException e) {
 e.printStackTrace();
 }
return Action.NONE;
 //return SUCCESS;//换成这句js不能弹窗
 }

Action成功调用,username接收正常,
struts2.1.6:

<package name="userpk" extends="json-default" >
 <action name="user"class="userAction">
 <result type="json" name="result">
 </result>
 <!-- <result type="json">  
                                 <param name="root">result</param>  
                      </result>   -->
 </action> 
 </package>


jsp页面js:

<script type="text/javascript">
 $(document).ready(function(){
 $("#btn").click(function(){
 $.ajax({
 type: "POST",
 url: "user!showUser",
 dateType: "json",
 data: {"userame":"wang"},
 success: function(data,status){
 //var json = eval( "("+result+")" );
 //alert("json"+json);
 alert("result:"+data);
 alert("status:"+status);
 }
 });
 });
 }); 
 </script>

[解决办法]
浏览器直接访问user!showUser看输出什么内容。
[解决办法]

import org.json.JSONObject;
 //result、username的setter、getter方法
 public String showUser(){
          List list = userDAO.findByUsername("king");
          System.out.println("userame"+userame);
      
          JSONObject obj=new JSONObject();
          try {
              obj.put("users", list);
              result=obj.toString();
              System.out.println("result: "+result);
                         //显示:result: {"users":[{"userpassword":"king","username":"king","userid":1}]}


          } catch (JSONException e) {
              e.printStackTrace();
          }
         //return Action.NONE;
          return "result";//换成result,这里应与 struts.xml里的  <result type="json" name="result"> name 一致
      }


[解决办法]
引用:
浏览器直接访问user!showUser看输出什么内容。


+++
[解决办法]
HttpServletResponse response = ServletActionContext.getResponse();
             // response.setContentType("text/html"); //火狐浏览器必须加上这句
             response.setCharacterEncoding("UTF-8");      
             response.getWriter().write(result);

我认为应该要加这个吧~不然数据传不过去啊。
[解决办法]
引用:
HttpServletResponse response = ServletActionContext.getResponse();
             // response.setContentType("text/html"); //火狐浏览器必须加上这句
             response.setCharacterEncoding("UTF-8");      
  ……


 struts2不加这个是可以的。

热点排行