如何使用操作将数组值从js传递到JSP文件

时间:2014-09-08 08:55:33

标签: java javascript arrays

js文件:

  

为什么dropdown1的大小为1?

function savethechanges(){
for(var i=0;i<count;i++)
{
    dropdown1[i]=document.getElementById("sel"+i).value;
    kot[i]=document.getElementById("kot"+i).value;
    item[i]=document.getElementById("itemcode"+i).value;
    if(dropdown1[i] == 0){
        document.detailsview.action="BillCB.jsp?method=" + "11" + "&itemcode=" +item[i]+ "&kot=" +kot[i]+ "&itemStatus1=" +dropdown1[i]+ "&billno=" +billno;
    }
    else if(dropdown1[i] == 1){
        document.detailsview.action="BillCB.jsp?method="+"9"+"&itemcode="+item[i]+"&kot="+kot[i]+"&itemStatus1="+dropdown1[i]+ "&billno="+billno;
    }
    else{
        document.detailsview.action= "BillCB.jsp?method="+"10"+"&itemcode="+item[i]+"&kot="+kot[i]+"&itemStatus1="+dropdown1[i]+ "&billno="+billno;
    }
}
}

JSP文件:

  

在这里检索dropdown1长度是1.但是对于kot而且项目长度是18   请提供您的解决方案!

 case 11:
 gotMethod = true;
 billdetails_be.billno = Integer.valueOf(request.getParameter("billno"));
 String[] kotCB2=request.getParameterValues("kot");
 String[] itemCB2=request.getParameterValues("itemcode");
 String[] statCB2=request.getParameterValues("itemStatus1");
 int[] kotarr2=new int[kotCB2.length];
 int[] itemarr2=new int[itemCB2.length];
 int[] statarr2=new int[statCB2.length];
 System.out.println("IN AVAILABLE:length of array is:"+statCB2.length);
 System.out.println("IN AVAILABLE:length of array is:"+kotCB2.length);
 for(int i=1;i<itemarr2.length;i++)
 {   
     kotarr2[i]=Integer.parseInt(kotCB2[i]);
 }
 for(int i=1;i<itemarr2.length;i++)
 {  
     itemarr2[i]=Integer.parseInt(itemCB2[i]);
 }
 for(int i=1;i<itemarr2.length;i++)
 { 
     statarr2[i]=Integer.parseInt(statCB2[i]);  
 }
 for(int i=1;i<itemarr2.length;i++)
 {
     int kotint2=kotarr2[i];
     int itemint2=itemarr2[i];
     int statint2=statarr2[i];
     System.out.println( i+"the value of kot in available"+ kotint2);
     int availablebill = websrv.availablebill(billdetails_be.billno, kotint2,   itemint2,statint2); 
  }

设计页面(jsp)

<%
for(int i=0;i<count;i++){
%>
<TR>
<TD>  <input id="itemcode<%=i%>" type="hidden" name="itemcode" value=" <%=billdetails_be.get(i).itemcode%>"></TD>
<TD><%=billdetails_be.get(i).itemdescription%></TD>
<TD>&nbsp;&nbsp;<input id="quantity<%=i%>" type="text" name="quantity"  style="width:  30px;" readOnly="readonly" value="<%=billdetails_be.get(i).quantity%>" >
<input type="submit"  id="inc<%=i%>" onclick= "doIt1(1,<%=i%>);"  value="+" style="width:20px; height:20px; border-radius:10px; padding:0 0; " /> 
<input type="submit"  id="dec<%=i%>" onclick="doIt1(-1,<%=i%>);"   value="-" style="width:20px; height:20px; border-radius:10px; padding:0 0; "/>
</TD>
<TD>&nbsp;&nbsp;<%=billdetails_be.get(i).price%></TD>
<TD>&nbsp;&nbsp;<%=billdetails_be.get(i).itemstatusdescription%></TD>
<td>
<select name="statusi" id="sel<%=i%>">
<option value="0">Available</option>
<option value="1">Unavailable</option>
<option value="2">Delete</option>
</select> 
</td>               
<td> <input id ="kot<%=i%>" type="text" style="border: 0px solid #000000;" name="kot"   style="cursor: text" readonly="readonly" value="<%=billdetails_be.get(i).kotno%>"></td>         
<TD> <input id="myquantity<%=i%>" type="hidden" name="quantity1" value="     <%=billdetails_be.get(i).quantity%>"></TD>
</TR> 
<%
} 
%>
<td><input style="width: 150px; " class="btn btn-green btn-large" type="submit" name="save" id="save" value="save"  class="button" onclick="savetheChanges(<%=count%>);">    </td>

问题

  

1.这是在js文件中,我将值传递给BillCB.jsp

 document.detailsview.action="BillCB.jsp?method=" + "11" + "&itemcode=" +itemcode1[i]+ "&kot=" +kot1[i]+ "&itemStatus1=" +selection[i]+ "&billno=" +billno;
  

2.这是在BillCB.jsp文件中(方法:11)

 String[] statCB2=request.getParameterValues("itemStatus1");
 int[] statarr2=new int[statCB2.length];
 System.out.println("IN AVAILABLE:length of STATUS array is:"+statCB2.length);
  

在AVAILABLE中:STATUS数组的长度为:1 - 这是问题。

1 个答案:

答案 0 :(得分:0)

我还没有查看您的代码,但您可以尝试使用此解决方案

使用JSON.stringify方法对数组数据进行字符串化,然后使用下面的行将字符串化数据发送到服务器。

数据= JSON.stringify(&#34; yourArrayName&#34)

然后发送&#34;数据&#34;作为JSP的参数

在服务器端将其转换回数组数据。