我是jquery和java的初学者。我有两个字符串变量和一个字符串数组。我使用来自javascript的post请求将这3个传递给java servlet.Below是代码:
var stDate= $('#drpstart').jqxDateTimeInput('getText');
var edDate= $('#drpend').jqxDateTimeInput('getText');
var items = $("#target").jqxListBox('getItems');
var itemsid=[];
$("#jqxWidget").html('');
for (var i = 0; i < items.length; i++) {
itemsid[i]=items[i].value;
}
$.post('ActionItem',
{startdt:stDate,enddt:edDate,item:itemsid},function(responseJson) {
});
然后我在servlet端访问这些变量和数组:
String starts=request.getParameter("startdt");
String ends=request.getParameter("enddt");
String[] myArray =request.getParameterValues("item");
if (myArray != null ) {
for (int i = 0; i < myArray.length; i++){
System.out.println(myArray[i]);
}
}
else {
System.out.println("null value");
}
但是myarray正在设置一个空值。如何正确地将值赋予myarray? 我的数据库表StockRegisterHeader包含字段'Date',日期为数据类型,所以我将字符串变量的开始和结束转换为日期格式,如下所示
SimpleDateFormat from = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat to = new SimpleDateFormat("yyyy-MM-dd");
Date startg = from.parse(starts); // 01/02/2014
Date endg = from.parse(ends);
现在我需要从这个日期范围内的4个表中选择数据。我写了如下查询:
String ss="SELECT Items.ParentID,Items.Name ,StockRegisterHeader.MovementType,
StockRegisterHeader.Date, UOM.Name,StockRegisterDetails.Quantity,
StockRegisterDetails.Rate from Items,StockRegisterHeader,UOM,StockRegisterDetails
where Items.ID = StockRegisterDetails.ItemID and
StockRegisterDetails.StockRegisterHeaderID = StockRegisterHeader.Id and
StockRegisterDetails.UOMID = UOM.ID and StockRegisterHeader.Date between '"+startg+"'
and '"+endg+"'";
rs=stmt.executeQuery(ss);
但即使数据库包含请求的数据,结果集对象rs也显示为null。我认为这可能是由于日期格式。如何解决这两个问题?我正在使用mysql数据库。请帮我。
答案 0 :(得分:0)
尝试更改
String[] myArray =request.getParameterValues("item");
到
String[] myArray =request.getParameterValues("item[]"); //brackets must be specified to retrive array value