将javascript数组传递给servlet问题
pass javascript array to a servlet issue
早上好,我正在使用jQuery.post()
从JSP发送java脚本数组到servlet,但这里的问题是,当执行动作时,它会抛出java.lang.NullPointerException
at servlets.DeleteServlet.doPost(DeleteServlet.java:45)
下面是将数组发送给servlet的java-script方法:
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
var myIdsArray = new Array;
function getCarId(tableID) { // these methods fills the array with values
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for ( var i = 0; i < rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if (null != chkbox && true == chkbox.checked) {
if (rowCount <= 2) {
alert("Cannot delete all the rows.");
break;
}
myIdsArray.push(table.rows[i].cells[1].innerHTML);
}
}
sendArrayToServer();
} catch (e) {
alert(e);
}
}
function sendArrayToServer() {
alert("Called");
$.post('DeleteServlet', {
arrayData : myIdsArray,
mode : "insert"
});
这是我的servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[] arrayData=request.getParameterValues("arrayData");
PrintWriter out=response.getWriter();
for (String string : arrayData) { // line 45
out.println(string);
}
request.getParameterValues("arrayData")
将返回名为"arrayData"的所有HTTP请求参数的字符串数组。参数可以在查询字符串中,也可以在HTTP POST正文中。
$.post('DeleteServlet', {
arrayData : myIdsArray,
mode : "insert"
});
不创建任何该名称的参数。这就是为什么你在第45行得到一个空指针。
在这种情况下,发送到服务器的是一个JSON字符串。您需要做的是在服务器上解析这个字符串。这意味着(1)从POST主体中获取字符串。(2)解析它。您可能需要使用第三方JSON解析器。Json-simple是个不错的选择。或者,如果希望保持服务器代码不变,则可以更改客户端代码以创建这些请求参数。可能最简单的方法是将它们放在查询字符串中。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- 使用angularjs向浏览器发送servlet响应(下载功能)
- jqGrid树网格问题
- 当值更改时,在servlet中自动获取textarea值,无需单击按钮
- 使用正则表达式评估电子邮件地址时出现性能问题
- 从旧的Java过渡到Play,Servlet问题
- 数据无法通过 Java Servlet 的问题
- 将javascript数组传递给servlet问题
- 从jsp到servlet接收数据时出现问题