gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 19:24:46 25 4
gpt4 key购买 nike

根据 stackoverflow 提供的帮助,我创建了带有隐藏字段的表以将值传递给 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+"')");
}

该异常是我自己故意抛出的,以检查请求中是否有可用的值,但它没有显示任何内容。

最佳答案

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

因此,而不是

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

你需要

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

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

也就是说,请使用PreparedStatement在您的 Java 代码中避免 SQL injection风险。此外,令我惊讶的是,您在流程中间编译了带有异常的 Java 代码。它会给出“无法访问的代码”错误。

关于java - 使用 jquery 创建的表无法从 servlet 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1953112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com