jiangweilou 2008-05-26 17:06
浏览 207
已采纳

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

我想在jsp页面里面用javascript定义一个数组来接受java传过来的数据怎么老是收不到数据,传一个字符串可以,传一个字符串数组就没数据了?
jsp页面
Java代码 [code="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">







Insert title here



<br><br> var string = &#39;<s:property value="sometext"/>&#39;;<br><br> var idx = 1;<br><br> function dosomething()<br><br> {<br><br> idx ++;<br><br> if (idx &gt; 10) idx = 1; </p> <pre><code> document.all.txtarea.innerText = string[idx]; return false; } function dosomething1() { idx --; if (idx &lt; 1) idx = 10; document.all.txtarea.innerText = string[idx]; return false; } </code></pre> <p>





<%@ 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">



Insert title here

<br> var string = &#39;<s:property value="sometext"/>&#39;;<br> var idx = 1;<br> function dosomething()<br> {<br> idx ++;<br> if (idx &gt; 10) idx = 1;</p> <pre><code> document.all.txtarea.innerText = string[idx]; return false; } function dosomething1() { idx --; if (idx &lt; 1) idx = 10; document.all.txtarea.innerText = string[idx]; return false; } </code></pre> <p>




[/code]
struts
[code="java"]
package 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;   
}      

}

[/code]
只是粗略的试了一下 字符串可以 数组 不知道是哪里写错了 老是没有数据

  • 写回答

3条回答 默认 最新

  • iteye_17163 2008-05-28 21:49
    关注

    首先 var string = '';
    这句话中的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不是数字类型的
    那要在每个值两边加上引号成为 [color=red]'[/color]valueA[color=red]'[/color],[color=red]'[/color]valueB[color=red]'[/color],[color=red]'[/color]valueC[color=red]'[/color]

    然后在Javascript之中
    以 var string = [] 的形式获取值;
    这样你所得到的string值就是一个数组了.

    希望上面的内容可以帮助你解决你的问题~` :arrow:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境