有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无法从servlet访问使用jquery创建的java表

基于stackoverflow提供的帮助,我创建了带有hiddenfields的表,以将值传递给servlet,但在servlet中,我无法获取输入字段的值

以下是我创建表的jQuery代码:

$("#linkInstr").click(function() {
    var arr = new Array();
    var cdid = $("#cboinstr option:selected");
    var code = $("#cbocode option:selected");
    $.get("trnDC?caseNo=21&insid="+cdid.text(), function(data) {
        arr = data.split(",");
        var contents = '<tr><td><input type="checkbox" id="chk_select'+counter+'" /></td><td><input type="hidden" id="txtCodeid'+counter+'" value="'+code.text()+'"/> ' + code.text()+ '</td><td><input type="hidden" id="txtInstrid'+counter+'" value="'+cdid.text()+'"/>' + cdid.text() + '</td><td>' + arr[0] + '</td><td>' + arr[1] + '</td><td>' + arr[2] + '</td></tr>';
        alert(contents);
        $("#tblDetails").append(contents);
        counter++;
    })
})

下面是我的Servlet代码:

int noOfRows = Integer.parseInt(request.getParameter("noOfRows"));

for (int i = 0; i < noOfRows; i++) {
    int j = i + 1;
    String codeid = request.getParameter("txtCodeid" + i);
    throw new Exception(request.getParameter("txtCodeid" + i));
    String instrId = request.getParameter("txtInstrid"+i);
    st.executeUpdate("insert into trndcdtls values(" +ccode +"," +fyear_code +"," +Dcno +"," + j +",'" + codeid +"','" + instrId +  "','"+status+"')");
}

我故意抛出异常,以检查任何值是否可以根据请求使用,但它没有显示任何内容


共 (1) 个答案

  1. # 1 楼答案

    您需要为输入字段指定一个名称。这将成为请求参数名

    因此

    <input id="foo">
    <input id="bar">
    

    你需要

    <input name="foo">
    <input name="bar">
    

    ID纯粹是为了标识客户端的元素,而不是服务器端的元素。您可以添加它们,但它们不会被发送到服务器端。只有输入元素的name-value对将作为请求参数发送到服务器端

    也就是说,请在Java代码中使用^{},以避免SQL injection风险。此外,让我惊讶的是,在流程中间,您得到了用异常编译的java代码。它会给出“无法访问的代码”错误