javascript接受struts传过来的数组问题

问题描述

我想在jsp页面里面用javascript定义一个数组来接受java传过来的数据怎么老是收不到数据,传一个字符串可以,传一个字符串数组就没数据了? jsp页面 Java代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <script> var string = '<s:property value="sometext"/>'; var idx = 1; function dosomething() { idx ++; if (idx > 10) idx = 1; document.all.txtarea.innerText = string[idx]; return false; } function dosomething1() { idx --; if (idx < 1) idx = 10; document.all.txtarea.innerText = string[idx]; return false; } </script> <div id="txtarea"></div> <input type="submit" onclick="return dosomething();"> <input type="submit" onclick="return dosomething1();"> </body> </html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <script> var string = '<s:property value="sometext"/>'; var idx = 1; function dosomething() { idx ++; if (idx > 10) idx = 1; document.all.txtarea.innerText = string[idx]; return false; } function dosomething1() { idx --; if (idx < 1) idx = 10; document.all.txtarea.innerText = string[idx];return false; } </script> <div id="txtarea"></div> <input type="submit" onclick="return dosomething();"> <input type="submit" onclick="return dosomething1();"> </body></html>strutspackage com.jwl.exam; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class testjs extends ActionSupport{ private String[] sometext={"dfslhk","fsdfsdf"}; public String[] getSometext() { System.out.println("getSometext()"); return sometext; } public void setSometext(String[] sometext) { this.sometext = sometext; } } 只是粗略的试了一下 字符串可以 数组 不知道是哪里写错了 老是没有数据

解决方案

首先 var string = '<s:property value="sometext"/>';这句话中的string得到的返回值只是Java代码中的someText数组的toString()值而数组的toString()方法返回值只是类似于java.lang.String;@360be0的字符串所以上面那句话的值就变为了 var string = 'java.lang.String;@360be0' 这样的形式其次 javascript中声明数组的语法是var string = ["valueA","valueB","valueC"];你的那种方式得到的永远只是字符串;所以:你可以将在getSomeText()方法里面把数组格式化`将数组 String[] sometext={"valueA","valueB","valueC"};转换为 valueA,valueB,valueC 的格式进行返回不过要注意`如果上面转换的valueA,valueB,valueC不是数字类型的`那要在每个值两边加上引号成为 'valueA','valueB','valueC'然后在Javascript之中以 var string = [<s:property value="sometext"/>] 的形式获取值;这样你所得到的string值就是一个数组了.希望上面的内容可以帮助你解决你的问题~`
解决方案二:
struts 好久不用了,两种办法1.在页面用jsp构造一个符合要求的字符串<% String xxx= ... %>2.在后台写个方法 getJsonArrayString 直接返回Json格式字符串,可以用 JSON.org的实现。<s:property value="sometext"/>' 相当于 getSometext().toString()
解决方案三:
'<s:property value="sometext"/>' 这样不就是强制为一个字符串了吗?能得到数组就怪了。可以试试eval(),前提是你返回的是正确的javascript数组

时间: 2024-12-24 12:23:37

javascript接受struts传过来的数组问题的相关文章

js怎么在function间传二维数组

问题描述 js怎么在function间传二维数组 我在一个function中定义了一个二维数组,想将这个二维数组当做参数传给另一个function ,怎么操作,求代码!!! 解决方案 请参考以下链接 JavaScript问题.能否在JS函数之间互相传递二维数组?http://zhidao.baidu.com/link?url=dogQO63WK_tuXcaCKurqCarVF41pMbtqWKqSau1eJ7aKvK9acNaiX9gG6p6RcmgOnD4fLzStn_QusvWG2M4DKq

JavaScript头像上传插件源码分享_javascript技巧

本文实例为大家分享了JavaScript头像上传插件源码,供大家参考,具体内容如下 效果图: 源码: cxc.js       /* cxc.js 频繁操作公共接口 */ var $ = function (id) { return document.getElementById(id); }; //通过id获取dom对象 var A = function (msg) { alert(msg); }; //alert的简写 var EmptyFun = function () { }; // 空

webupload 在后端怎么接受上传的内容

问题描述 webupload 在后端怎么接受上传的内容 webupload 在前端点击上传后,java后端该怎么写,文件上传webupload的后台想结合 解决方案 http://www.cnblogs.com/huhuuu/p/4294173.html

如何用javascript控制上传文件的大小?

javascript|控制|上传 如何用javascript控制上传文件的大小? --------本文讲的是用javascript和在IE下Image的一些属性如(fileSize,fileUpdatedDate)等控制上传文件的大小.   <form   name=Myform  >     <input   type=file   name=photo><br/>     <input   type=submit   value=submit></

JavaScript通过元素索引号删除数组中对应元素的方法

 这篇文章主要介绍了JavaScript通过元素索引号删除数组中对应元素的方法,涉及javascript操作数组的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了JavaScript通过元素索引号删除数组中对应元素的方法.分享给大家供大家参考.具体分析如下: JavaScript通过元素的索引号删除数组中的元素,如果要删除第3个元素,则使用RemoveValByIndex(2)即可,JS数组从0开始 ? 1 2 3 4 5 6 7 8 9 10 11 function Rem

android传参-Android 如何传二维数组

问题描述 Android 如何传二维数组 String[][] testArr = new String[2][2]; int i = 0; for(String[] x:testArr){ x[i][0]="zhangsan"; x[i][1]="lisi"; i++; } 把这个testArr传到另一个activity 我的方法没实现了 //set bundle.putSerializable("myList", testArr); ....

javascript如何遍历django传来的数组

问题描述 javascript如何遍历django传来的数组 问题是这样的:我的views.py文件中有如下数组需要传递到后台:def maintest(req): person = {""name"":""chaoma"" age"":27} person2 = {""name"":""yanma"" age"&qu

Android 服务器端如何接受到传过去的请求参数对象。服务器端用cshape开发

问题描述 Android 服务器端如何接受到传过去的请求参数对象.服务器端用cshape开发 客户端是用的Android-async-http-1.4.5这个jar包.进行传输数据. AsyncHttpClient client=new AsyncHttpClient(); RequestParams params=new RequestParams(); params.put("ID", ID); client.post(path, params, myAsyn);//客户端发送请求

JavaScript中的Array 对象(数组对象)_javascript技巧

 1.创建Array对象方法: --->var arr = [1,2,3];//简单的定义方法 此时可以知道 arr[0] == 1; arr[1] == 2; arr[2] == 3; --->new Array(); var arr = new Array();//定义一个没有任何内容的数组对象,然后以下面的方式为其赋值 arr[0] = "arr0"; arr[1] = "arr1"; arr[2] = "arr2"; ---&