0 0

帮忙解决JAVA 关于二维数组传值到JS10

本人是新手,可能是提问题,并没有提供全面的信息,如果需要的话,请提出,我会完善的!
首先,我使用的是hibernate+struts
首先我从数据库提取数据如下:
在.JSP中
   
  <%
       int emp_id=(Integer)session.getAttribute("emp_id");
       IoGoodsBs iobs= new IoGoodsBs();
       List<IoGoods> list= null;
       int ioless=1;
       list=iobs.queryIoGoodsByIoless(emp_id,ioless);
       int size=list.size();
      
      String[][] li= new String[size][2];     
         for(int i=0;i<list.size();i++)
       {
         IoGoods iogs=(IoGoods)list.get(i);
          li[i][0]=iogs.getGoodsname();
          li[i][1]=String.valueOf(iogs.getQuantity());  // iogs.getQuantity()是INT 类型的. 
       
       }
      
%>

本人想将 li 这个二维数组传值进下面的JS中的, myDate中,请问,应该怎么做.才能让我取得的二维数组li同JS中myDate一样.
JS如下:
<script type="text/javascript">
var myData = new Array(['U.S.A.', 69.5], ['Canada', 2.8], ['Japan & SE.Asia', 5.6], ['Aus. & NZ.', 2.8], ['E.U.', 14.6], ['Others Europe', 2.7], ['Others', 1.9],['wwei',1.2]);
var colors = ['#FA5E1F', '#FDCB3F', '#71D743', '#D23333', '#BAE73F', '#AB7B55', '#B381C9'];
var myChart = new JSChart('graph', 'bar');
myChart.setDataArray(myData);
myChart.colorizeBars(colors);
myChart.setTitle('Host distribution per macroareas');
myChart.setTitleColor('#8E8E8E');
myChart.setAxisNameX('Region');
myChart.setAxisNameY('%');
myChart.setAxisColor('#c6c6c6');
myChart.setAxisWidth(1);
myChart.setAxisNameColor('#9a9a9a');
myChart.setAxisValuesColor('#939393');
myChart.setAxisPaddingTop(60);
myChart.setAxisPaddingLeft(50);
myChart.setAxisPaddingBottom(60);
myChart.setTextPaddingBottom(20);
myChart.setTextPaddingLeft(15);
myChart.setTitleFontSize(11);
myChart.setBarBorderWidth(0);
myChart.setBarSpacingRatio(50);
myChart.setBarValuesColor('#737373');
myChart.setGrid(false);
myChart.setSize(616, 321);
myChart.setBackgroundImage('chart_bg.jpg');
myChart.draw();
</script>


感谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2009年4月19日 00:46

2个答案 按时间排序 按投票排序

0 0

采纳的答案

这个就是把java中的数组转换成json字符串传给js就能解析,

看看这个工具框架,java 和 json之间的转换
把这个包下载下来加到工程。地址:http://sourceforge.net/projects/stringtree



在.JSP中
jsp中导入    import org.stringtree.json.JSONWriter;

<%
       int emp_id=(Integer)session.getAttribute("emp_id");
       IoGoodsBs iobs= new IoGoodsBs();
       List<IoGoods> list= null;
       int ioless=1;
       list=iobs.queryIoGoodsByIoless(emp_id,ioless);
       int size=list.size();
      
      String[][] li= new String[size][2];     
         for(int i=0;i<list.size();i++)
       {
         IoGoods iogs=(IoGoods)list.get(i);
          li[i][0]=iogs.getGoodsname();
          li[i][1]=String.valueOf(iogs.getQuantity());  // iogs.getQuantity()是INT 类型的. 
       
       }
       JSONWriter writer = new JSONWriter();
       String jsonStr = writer.write(li);
%>

本人想将 li 这个二维数组传值进下面的JS中的, myDate中,请问,应该怎么做.才能让我取得的二维数组li同JS中myDate一样.
JS如下:
<script type="text/javascript">
var myData = <%=jsonStr %>;
var colors = ['#FA5E1F', '#FDCB3F', '#71D743', '#D23333', '#BAE73F', '#AB7B55', '#B381C9'];
var myChart = new JSChart('graph', 'bar');
myChart.setDataArray(myData);
myChart.colorizeBars(colors);
myChart.setTitle('Host distribution per macroareas');
myChart.setTitleColor('#8E8E8E');
myChart.setAxisNameX('Region');
myChart.setAxisNameY('%');
myChart.setAxisColor('#c6c6c6');
myChart.setAxisWidth(1);
myChart.setAxisNameColor('#9a9a9a');
myChart.setAxisValuesColor('#939393');
myChart.setAxisPaddingTop(60);
myChart.setAxisPaddingLeft(50);
myChart.setAxisPaddingBottom(60);
myChart.setTextPaddingBottom(20);
myChart.setTextPaddingLeft(15);
myChart.setTitleFontSize(11);
myChart.setBarBorderWidth(0);
myChart.setBarSpacingRatio(50);
myChart.setBarValuesColor('#737373');
myChart.setGrid(false);
myChart.setSize(616, 321);
myChart.setBackgroundImage('chart_bg.jpg');
myChart.draw();
</script>

2009年4月19日 09:43
0 0

1、首先将你的2维数组放到request的中如:reqeust.setAttribute("result",li);
2、在jsp页面中从request中取出,如下:

   <%
   String[][] result = (String[][])request.getAttribute("result");
   %>

   var myData = new Array();
   <%for(int i=0;i<result.length ;i++){%>
          myData[<%=i%>][0] = <%=result[i][0]%>;
          myData[<%=i%>][1] = <%=result[i][1]%>;
    <%}%>


这样就可以给你的js的二维数组赋值了。

2009年4月19日 09:23

相关推荐

Global site tag (gtag.js) - Google Analytics