在JSP页面中使用JavaScript和JSON获取详细信息

时间:2017-06-16 04:33:10

标签: javascript json jsp

首先,我知道有更好的方法可以做到这一点,但客户要求它以这种方式完成。

修改 我早些时候改变了一些事情。

问题:现在,我只获得一条带有共同“binder_no”的记录,但我应该得到多个。

的index.jsp

    <script>
        function fetchEmailList(obj){
            var but_val = obj.value;
            var off_no = '<%=subdiv%>';
            alert(off_no);
            var bill_mon = '<%=bmon%>';
            var bill_year = '<%=yr%>';
            //$("#"+tblId).html(sprTblHdr); 
            $.post("fetch_dtls.jsp",{fetch_bin: but_val,bill_m: bill_mon,bill_y: bill_year,office: off_no},function(data){
                alert("Hello");
                console.log(data);
                var jsonData =  JSON.parse( $.trim(data) );               
                console.log(jsonData);
                $.each(jsonData, function(k, v){                    
                    //$("#bin_det").find("tr:eq(1) td:eq(0) #consNu").html(v.consNum);
                    $("#bin_det").find("tr:eq(1) td:eq(0) #offno").html(v.offName);
                    $("#bin_det").find("tr:eq(1) td:eq(1) #binno").html(v.binNo);
                    $("#bin_det").find("tr:eq(1) td:eq(2) #billdate").html(v.billDate);
                    $("#bin_det").find("tr:eq(1) td:eq(3) #duedate").html(v.dueDate);
                    $("#panel").css({"display":"block"});
                });
                //alert(" tbl_html : "+$("#"+tblId).html());
                alert("Bye");            
            });
        }
    </script>
    <div id="panel"  style="display:none;">
        <table id="bin_det">
            <tr>
                <th colspan="3">
                    <%= subdiv+"  "+bmon+"  "+yr %>
                </th>
            </tr>
            <tr>
                <td>
                    <span id="offno"></span>
                </td>
                <td>
                    <span id="binno"></span>
                </td>
                <td>
                    <span id="billdate"></span>
                </td>
                <td>
                    <span id="duedate"></span>
                </td>
            </tr>
        </table>
    </div>

fetch_dtls.jsp

<%
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@10.50.82.11:1521:SOS2", "trainee", "trainee");
try {
    //PreparedStatement ps;
    Statement st=con.createStatement();
    ResultSet rs;
    JSONArray ja = new JSONArray();
    //if(binstr.equals("STN_LIST_BEF_ASSIGN")){  
        String qry = "select * from kcs.rl_kota_bill_prnt_tbl where binder_no='"+request.getParameter("fetch_bin")+"' and bill_month='"+request.getParameter("bill_m")+"' and bill_year='"+request.getParameter("bill_y")+"'";
        //ps = con.prepareStatement(qry);
        //ps.setString(1, stnOwner);
        rs = st.executeQuery(qry);
        while(rs.next()) {        
            JSONObject obj = new JSONObject();
            obj.put("binNo",rs.getString("binder_no"));
            obj.put("offName",rs.getString("office_name"));
            obj.put("billDate",rs.getString("issue_date"));
            obj.put("dueDate",rs.getString("due_date_by_cash"));
            ja.add(obj);
        }
        rs.close();
        st.close();
        response.getWriter().write(ja.toString());
        response.getWriter().flush();
        response.getWriter().close();
    //}
}
catch(Exception e){
    out.println("Wrong Det: "+e);
}
%>

我认为将值放在表格中会出错。请帮我纠正错误。

1 个答案:

答案 0 :(得分:0)

您的JSON格式不正确。我建议你使用Java到JSON转换器库,如jackson。

https://github.com/FasterXML/jackson

要验证您的JSON,您可以使用任何在线json验证器。将您的响应打印到浏览器控制台并首先验证它。