您的位置:首页 > 编程语言 > Java开发

js传递二维数组到java后台 0人关注 讲义教程 资讯 常见问题 开发技巧

2015-04-18 12:14 483 查看
思路:前台使用jquery.ajax吧二维数组发送到java后台,Java后台能获取到一维的数组,需要将一维的数组再次进行切割,java后台使用字符串的切割类StringTokenizer将收到的一维数组按照指定的分隔符进行切割,前台发送过来的数组默认以“,”分开,所以使用逗号作为切割符号。重点是红色标记的部分。

 

前台代码:

 

<%@ page language="java" contentType="text/html; charset=gbk"%>

<%

 String path = request.getContextPath();

 String basePath = request.getScheme() + "://"

   + request.getServerName() + ":" + request.getServerPort()

   + path + "/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

 <head>

  <base href="<%=basePath%>">

  <title>My JSP 'main.jsp' starting page</title>

  <!--

 <link rel="stylesheet" type="text/css" href="styles.css">

 -->

 <script type="text/javascript" src="jquery.js"></script>

  <script type="text/javascript">

  

function test(){

var time1=new rray();

for(var i=0;i<10;i++)

{time1[i]=new Array();

for(var j=0;j<10;j++)

time1[i][j]=i*j+j;

}
 jQuery.ajax({

             type : "POST",

            url : "calculate.action?data="+new Date(),

            data:{ec:10,cc:10,cp:cp,ep:ep,time1:time1},  //cc是数组的行数,ec是数组的列数,cp,ep可以忽略,time1是个二维数组

             dataType : "json",

             success : function(data) {          

                     var result1=data.result1;

                     alert(result1.length);             

             },

             error : function(request, error, exception)

             {

                 alert("数据获取错误: " + error + " 异常:" + exception);

             }

         });

       

 }

  

 

</script>

 </head>

 <body  onload="test()">

  

 </body>

</html>

 

web.xml

<filter>

  <filter-name>struts</filter-name>

  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

 </filter>

  <filter-mapping>

  <filter-name>struts</filter-name>

  <url-pattern>/*</url-pattern>

  

 </filter-mapping>

 

jar包:



 struts.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

 <package name="project" extends="struts-default">

  <result-types>

   <result-type name="rawtext" class="RawTextResult" />

  </result-types>

  <action name="calculate" class="Calculate">

   <result name="success">/index.jsp</result>

  </action>

 </package>

</struts>

 

java类:Calculte:

import java.util.List;

import java.util.StringTokenizer;

import javax.servlet.http.HttpServletRequest;

import com.opensymphony.xwork2.ActionSupport;

public class Calculate  extends ActionSupport {

 private int ec;

 private int cc;

 private int[] cp;

 private int[] ep;

 private double[][] time1;

 private double changliang;

 private String stringResult;

 HttpServletRequest request;

 public HttpServletRequest getRequest() {

  return request;

 }

 public void setRequest(HttpServletRequest request) {

  this.request = request;

 }

 public String getStringResult() {

  return stringResult;

 }

 public void setStringResult(String stringResult) {

  this.stringResult = stringResult;

 }

 public double getChangliang() {

  return changliang;

 }

 public void setChangliang(double changliang) {

  this.changliang = changliang;

 }

 public int getEc() {

  return ec;

 }

 public void setEc(int ec) {

  this.ec = ec;

 }

 public int getCc() {

  return cc;

 }

 public void setCc(int cc) {

  this.cc = cc;

 }

 public int[] getCp() {

  return cp;

 }

 public void setCp(int[] cp) {

  this.cp=new int[this.cc];

  this.cp = cp;

 }

 public int[] getEp() {

  return ep;

 }

 public void setEp(int[] ep) {

  this.ep=new int[this.ec];

  this.ep = ep;

 }

 public void setTime1(String[] time2){
  this.time1=new double[cc][ec];

  String[] t=new String[cc];

  t=time2;

  for(int i=0;i<cc;i++){

   System.out.println(t[i]);

  StringTokenizer st=new StringTokenizer(t[i],",");

  int j=st.countTokens();

  if(j==ec){

   int y=0;

  while(st.hasMoreElements()){

   String x=st.nextToken();

   System.out.println(x);

   this.time1[i][y]=Double.parseDouble(x);

   y++;

  }

  }

  }  

 }

 

 public String execute() throws Exception {

  return "success";

 }

 

 

 

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: