来自json,它没有返回结果

时间:2013-09-02 12:11:06

标签: java javascript json jsp servlets

这是jsp代码正在发生的事情是当我提交代码时它会调用ajax函数的url并执行该函数但是当它返回时它会调用其他url 如果我从jsp调用ajax进入那个特定的url并在之后执行它进入另一个url而不返回结果

<form name="frm" action="createnewcatgoryBean.jsp" onsubmit="return validatenewcat()" method="post">
    <table style="padding: 5px 0px 0px 8px;">
        <tr>
            <th colspan="2">
                <div style="width: width:271px; color:red;" id="validate"></div>
            </th>
        </tr>
        <tr>
            <th>Category Name<span>:</span>
            </th>
            <td>
                <input id="cat" onblur="return validatenewcat()" type="text" name="category">
            </td>
        </tr>
        <tr>
            <th>Quotations form<span>:</span>
            </th>
            <td>
                <input type="checkbox" name="quotations">
            </td>
        </tr>
        <tr>
            <th>Agreement form<span>:</span>
            </th>
            <td>
                <input type="checkbox" name="agreement">
            </td>
        </tr>
        <tr>
            <th>Payment form<span>:</span>
            </th>
            <td>
                <input type="checkbox" name="payment">
            </td>
        </tr>
        <tr>
            <th>ETI<span>:</span>
            </th>
            <td>
                <input type="checkbox" name="eti">
            </td>
        </tr>
        <tr>
            <td colspan="2" style="float:right; padding-top:15px">
                <input type="submit" value="Submit" style="width: 60px;">
            </td>
        </tr>
    </table>
</form>

这是包含AJAX请求的JavaScript代码:

function validatenewcat() {
    var category = document.getElementById("cat").value;
    if (category == "") {
        setTimeout(document.getElementById("validate").innerHTML = "!PLz Enter The Category Name", 2000);
        return false;
    } else {
        var url = "catnamecheck.do?id=" + category;
        xmlhttp.open("post", url, true);
        xmlhttp.send(null);
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    var temp = xmlhttp.responceText;
                    obj = JSON.parse(temp);
                    alert(obj);

                    if (temp != "") {
                        document.getElementById("validate").innerHTML = "!PLz Enter The Unique Category Name";
                        document.getElementById("cat").focus();
                        return false;
                    }

                }
            }

        }
    }
}

这是我的java代码

public Map<String, String> catuniqecheck(String id) {
    Connection c = null;
    PreparedStatement ps1 = null;
    ResultSet rs1 = null;
    String sql=null;
    try{
        c = JDBCHelper.getConnection();
        if(c!=null)
        {
            Map<String, String> map = new HashMap<String, String>();
            sql="select * from catgory where catgoryname=?";
            ps1=c.prepareStatement(sql);
            ps1.setString(1, id);
            ps1.execute();
            rs1=ps1.getResultSet();
            if(rs1.next())
            {
                System.out.println("insdide of the catuniqecheck");
                map.put("catgoryname",rs1.getString("catgoryname"));
            }
            return map;
        }   
       else
         {  
               System.out.println("DB connection Established");
               return null  ;
         }
        }
        catch (Exception e) {
            // TODO: handle exception
               return null  ;
        }
finally{
            JDBCHelper.close(rs1);
            JDBCHelper.close(ps1);
            JDBCHelper.close(c);
       }
}

这是我的servlet代码

 Map<String, String> result =p1.catuniqecheck(id);
                if(result!=null)
                {
                    System.out.println("inside success");
                    JSONObject json = new JSONObject();
                    json.accumulateAll(result);
                    System.out.println("inside json"+json.toString());
                    response.setContentType("application/json");
                    response.getWriter().write(json.toString());
                }

1 个答案:

答案 0 :(得分:0)

尝试用 obj = JSON.parse("["+temp+"]")
然后第一个响应长度
alert(obj[0].length);
alert(obj[0]);

bcoz有时会在[{...}]

之类的方括号内回应