action向jsp页面传数组,在jsp中怎么接收???

www_shenrenxue_com 2009-12-11 08:30:18
Java Code:

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
String[] arr = { "1", "3", "5" };
request.setAttribute("arr", arr);
return new ActionForward("/index.jsp");
}

Jsp页面:
<body>
<script type="text/javascript">
function getArr(){
var arr = '<%=request.getParameterValues("arr")%>';
for(var i=0;i<arr.length;i++){
alert(arr[i]);
}


}


</body>

跟我想的不一样啊,怎么打出来的都是undefined...而且length是27不是3,为什么?

...全文
716 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jisi772864447 2009-12-11
  • 打赏
  • 举报
回复
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%
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 'demo.jsp' starting page</title>
<script type="text/javascript">
function test(){
var checkBoxs = document.getElementsByName("cb1");
<c:forEach items="${arr}" var="wangjian">
for(var i=0;i<checkBoxs.length;i++){
if(checkBoxs[i].value=='${wangjian}'){
checkBoxs[i].checked=true;
}
}
</c:forEach>
}
window.onload=function(){
test();
}
</script>

</head>

<body>


jsp页面中有几个checkbox
<input type="checkbox" name="cb1" value="a">a
<input type="checkbox" name="cb1" value="b">b
<input type="checkbox" name="cb1" value="c">c
<input type="checkbox" name="cb1" value="d">d
<br>
<!--
<c:forEach items="${arr}" var="db">
<input type="checkbox" name="cb1" value="db" <c:if test='${fn:contains(arr,db)}'>checked="true" </c:if>/>${db} <br />
</c:forEach>
-->
</body>
</html>


后台:

	public ActionForward demo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String[] arr = { "a", "b", "c" };
request.setAttribute("arr", arr);
return mapping.findForward("test");
}
crazylaa 2009-12-11
  • 打赏
  • 举报
回复
后面:
String str ="1,3,5";
request.setAttribute("att",att);

<script type="text/javascript">
function getArr(){
var arr = ' <%=request.getAttribute("arr")%>';

var ss = arr.split(",");
for(var i=0;i <ss.length;i++){
alert(ss[i]);
}
for(var i=0;i <arr.length;i++){
alert(arr[i]);
}
}
</script>
howsun_zh 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 www_shenrenxue_com 的回复:]
Jsp页面:
<script type="text/javascript">
  function getArr(){
  var arr = ' <%=request.getParameterValues("arr")%>';
  for(var i=0;i <arr.length;i++){
  alert(arr[i]);
  }
  }


头一回看这种代码。I 服了 you!
JavaScript 和 Java 不是一家的。

</body>

跟我想的不一样啊,怎么打出来的都是undefined...而且length是27不是3,为什么?


[/Quote]
www_shenrenxue_com 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jisi772864447 的回复:]
  <body>
  <c:forEach items="${arr}" var="wangjian">
  ${wangjian} <br>
  </c:forEach>
  </body>

兄弟 ,页面这个可以输出,是不是非要用js输出啊
[/Quote]
我其实是想从action传到页面一个数组,然后用这个数组里的值控制页面里一组checkbox默认被选中
如action出过去 a , b , c
jsp页面中有几个checkbox
<input type="checkbox" name="cb1" value="a">a
<input type="checkbox" name="cb1" value="b">b
<input type="checkbox" name="cb1" value="c">c
<input type="checkbox" name="cb1" value="d">d
...
默认前三组会被选中,但我现在不知道怎么在jsp页面中接收action中传来的数组
jisi772864447 2009-12-11
  • 打赏
  • 举报
回复
<body>
<c:forEach items="${arr}" var="wangjian">
${wangjian}<br>
</c:forEach>
</body>

兄弟 ,页面这个可以输出,是不是非要用js输出啊
www_shenrenxue_com 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jisi772864447 的回复:]
可以用el表达式的。

后台
String[] arr = { "1", "3", "5" };
request.setAttribute("arr", arr);
return new ActionForward("/index.jsp");
}

Jsp页面:
<body>
  <script type="text/javascript">
  function getArr(){
  var arr = ' <%=request.getParameter("arr")%>';
Array ss = arr.split(",");
  for(var i=0;i <arr.length;i++){
  alert(arr[i]);
  }
 
或者 function getAtt(){
  var arr = ${arr};
  Array ss = arr.split(",");
    for(var i=0;i <arr.length;i++){
    alert(arr[i]);
  }
}
 
}
 
  }

[/Quote]
你给的两个方法,页面都出错啊,怎么办。。。
www_shenrenxue_com 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bayougeng 的回复:]
。。。
你自己想一下,你的下面这段代码:
request.getParameterValues("arr")
它的相当于:
request.getParameterValues("arr").toString()
它的值可能是:
java.lang.reflect.Array@ad3dssa
那返回给客户端就是这样的js:
var arr = 'java.lang.reflect.Array@ad3dssa';
你觉得它会是你想要的东西么?
[/Quote]

对啊,打出来N多undefined,该怎么在页面输出来,用alert依次输出1,3,5
jisi772864447 2009-12-11
  • 打赏
  • 举报
回复
你想要数组的话就分割一下吧,看你的题目好像不是数组,而是一个字符串,逗号分隔了就是数组了。
bayougeng 2009-12-11
  • 打赏
  • 举报
回复
。。。
你自己想一下,你的下面这段代码:
request.getParameterValues("arr")
它的相当于:
request.getParameterValues("arr").toString()
它的值可能是:
java.lang.reflect.Array@ad3dssa
那返回给客户端就是这样的js:
var arr = 'java.lang.reflect.Array@ad3dssa';
你觉得它会是你想要的东西么?
www_shenrenxue_com 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jisi772864447 的回复:]
可以用el表达式的。

后台
String[] arr = { "1", "3", "5" };
request.setAttribute("arr", arr);
return new ActionForward("/index.jsp");
}

Jsp页面:
<body>
  <script type="text/javascript">
  function getArr(){
  var arr = ' <%=request.getParameter("arr")%>';
Array ss = arr.split(",");
  for(var i=0;i <arr.length;i++){
  alert(arr[i]);
  }
 
或者 function getAtt(){
  var arr = ${arr};
  Array ss = arr.split(",");
    for(var i=0;i <arr.length;i++){
    alert(arr[i]);
  }
}
 
}
 
  }

[/Quote]

没逗号不能正常输出么?
happyfmy 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 www_shenrenxue_com 的回复:]
request.getAttribute("arr"); 还是打出来27个undefined.
[/Quote]

那就不知道了
www_shenrenxue_com 2009-12-11
  • 打赏
  • 举报
回复
没有高手指教一下么? 我希望是javaScript中用一个数组var arr = new Array(); 用这个arr来接收action传过来的数组,怎么实现?
jisi772864447 2009-12-11
  • 打赏
  • 举报
回复
可以用el表达式的。

后台
String[] arr = { "1", "3", "5" };
request.setAttribute("arr", arr);
return new ActionForward("/index.jsp");
}

Jsp页面:
<body>
<script type="text/javascript">
function getArr(){
var arr = ' <%=request.getParameter("arr")%>';
Array ss = arr.split(",");
for(var i=0;i <arr.length;i++){
alert(arr[i]);
}

或者 function getAtt(){
var arr = ${arr};
Array ss = arr.split(",");
for(var i=0;i <arr.length;i++){
alert(arr[i]);
}
}

}

}
sw19810913 2009-12-11
  • 打赏
  • 举报
回复
楼上的正解~!!
你是放在session里面
所以要用 request.getAttribute("arr");
www_shenrenxue_com 2009-12-11
  • 打赏
  • 举报
回复
request.getAttribute("arr"); 还是打出来27个undefined.
happyfmy 2009-12-11
  • 打赏
  • 举报
回复
不是request.getParameterValues
而是request.getAttribute("arr")
www_shenrenxue_com 2009-12-11
  • 打赏
  • 举报
回复
怎么没高手指教啊????
。。。。。。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧