【问题标题】:Unable to pass JSONObject from JAVA Class to jsp无法将 JAVA 类中的 JSONObject 传递给 jsp
【发布时间】:2011-12-10 14:04:15
【问题描述】:

我已经查看了这个example,但我仍然无法在 jsp 中检索 JSON 对象。这是我的 MyCalendarController.java 类中的代码:

public class MyCalendarController implements Controller{

    public ModelAndView handleRequest(HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        if("Add".equals(request.getParameter("action"))){
...
            JSONObject jObj = new JSONObject();
            jObj.put("test", "Success");
            response.getWriter().write(jObj.toString());
...
         }
     return new ModelAndView("mycalendar", "model", myModel);
}

这是我尝试在 jsp 中检索它的方式,但警报总是显示“未定义”

var queryString = "?action=Add";
    queryString +=  "&t=" + title;
    queryString +=  "&sDT=" + stDate + "T" + stHour + ":" + stMin + ":00";
    queryString +=  "&eDT=" + eDate + "T" + eHour + ":" + eMin + ":00";
$.ajax({
        type:"GET",
        url: "mycalendar.htm" + queryString,
        success: function(response){
                    alert(response.test);
        }
});

注意:当从 jsp 对类进行 ajax 调用时,我正在尝试创建 JSON 对象。我是 ajax 和 javascript 的新手,所以一定是做错了什么......请帮忙!!!

在上述代码中,response.responseText 属性为“未定义”。但我尝试了另一种方式:

var ajaxRequest;

try{                                       
    ajaxRequest = new XMLHttpRequest();
}catch (e){
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }catch (e){
            alert("Your browser broke!");
            return false;
        }
    }
 }

 ajaxRequest.onreadystatechange = function(){
     if(ajaxRequest.readyState == 4){
        alert(ajaxRequest.responseText);
        alert("test: " + ajaxRequest.test);
     }
}



var queryString = "?action=Add";
queryString +=  "&t=" + title;
queryString +=  "&sDT=" + stDate + "T" + stHour + ":" + stMin + ":00";
queryString +=  "&eDT=" + eDate + "T" + eHour + ":" + eMin + ":00";

ajaxRequest.open("GET", "mycalendar.htm" + queryString, true);
ajaxRequest.send(null);

这样我得到了 ajaxRequest.responseText 但 alert("test: " + ajaxRequest.test); 仍然显示 undefined

【问题讨论】:

    标签: javascript jquery ajax json


    【解决方案1】:
    var a =  '<%=DropDown.returnList()%>';
    var countryObj = JSON.parse(a);
    var s = $('#selectCountry');  
     for(var val in countryObj) 
          {          
           $('<option />', {value: val, text: countryObj[val]}).appendTo(s); 
          } 
    

    【讨论】:

    • 在 Java 类中使用静态函数并在 JSP 中导入该类
    【解决方案2】:

    试试alert(response.responseText),我不确定。

    【讨论】:

    • alert(response.responseText) 也未定义...使用第一种方法访问对象时。在第二种方法中,ajaxRequest.responseText 返回响应。但是,ajaxRequest.test 仍然未定义。这是访问对象的正确方法吗? alert("测试:" + ajaxRequest.test);任何人,任何见解...拜托!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2020-05-09
    • 2013-01-14
    • 2014-01-07
    • 1970-01-01
    • 2012-04-18
    • 2014-04-27
    相关资源
    最近更新 更多