数组和日期格式问题

时间:2014-02-20 06:08:46

标签: java servlets

我是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数据库。请帮我。

1 个答案:

答案 0 :(得分:0)

尝试更改

String[] myArray =request.getParameterValues("item");

String[] myArray =request.getParameterValues("item[]"); //brackets must be specified to retrive array value