无法从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 楼答案
您需要为输入字段指定一个名称。这将成为请求参数名
因此
你需要
ID纯粹是为了标识客户端的元素,而不是服务器端的元素。您可以添加它们,但它们不会被发送到服务器端。只有输入元素的
name
-value
对将作为请求参数发送到服务器端也就是说,请在Java代码中使用^{} ,以避免SQL injection风险。此外,让我惊讶的是,在流程中间,您得到了用异常编译的java代码。它会给出“无法访问的代码”错误