在论坛上常看见有人问如何在jsp页面间传递数组,其实用javabean是很容易实现的.
下面给个简单的例子,只要遵循javabean的游戏规则,什么类型的数据结构都可以传递:
1:写一个测试用的javabean:
package com.infoearth;
public class JobBean{
private int[] b;
/**
* @return 返回 b。
*/
public int[] getB() {
return b;
}
/**
* @param b 要设置的 b。
*/
public void setB(int[] b) {
this.b = b;
}
}
2:在第一个jsp页面中(注意文本框的name都是"b"):
<form action="manageJob.jsp" method="post">
<table>
<tr>
<td width="50" height="30"> </td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
<td width="50" height="30"><input name="b" type="text" size="3"></td>
</tr>
</table>
<input type="submit" value="提交">
</form>
3:在manageJob.jsp页面中,就可以接受这个数组了,很简单,用get方法就可以得到:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*, com.infoearth.*"
errorPage="" %>
<jsp:useBean id="jobInfo" class="com.infoearth.JobBean" scope="request">
<jsp:setProperty name="jobInfo" property="*"/>
</jsp:useBean>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
hello
<%
int[] temp=jobInfo.getB();
for(int i=0;i<temp.length;i++){
out.print(i+"---"+temp[i]+"<br>");
}
%>
</body>
</html>
请注意javabean的内部机制:在javabean中命名的数组名为b,那么在第一个jsp中,填写数组b的文本框必须命名为b,否则就得不到!
这是javabean的游戏规则
呵呵,但愿对你有帮助