[code="java"]<%@ page language="java" contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.List" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
<%@ page import="java.util.LinkedList;" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
List list=(List)request.getAttribute("rsArray");
out.println(list);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>selectInfo.jsp</title>
</head>
<tr>
<html:submit value="提交"/><html:cancel value="取消"/>
</tr>
</html:form>
</table>
部门 : | 使用人 : | 品牌: | |||
购机时间 : | 计算机名 : | 使用人 : |
<tr>
<td>使用人 :</td>
<td>内存 : </td>
<td>电话 : </td>
<td>特殊软件 : </td>
<td>机器型号 : </td>
<td>硬盘 : </td>
<td>购机时间 : </td>
<td>计算机名 : </td>
<td>cpu : <td>
<td>备注 : <td>
<td>病毒名称 : <td>
<td>部门 : <td>
<td>品牌 : <td>
<td>使用情况 :<td>
<td>用户名 : <td>
<td>是否液晶 : <td>
<td>光驱 : <td>
<td>职务 : <td>
/html:html
[/code]
action
[code="java"]public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
SelectInfoForm selectInfoForm = (SelectInfoForm) form;// TODO
// Auto-generated
// method stub
String brand = (String)selectInfoForm.getBrand();
String buyTime = (String)selectInfoForm.getBuytime();
String departname = (String)selectInfoForm.getDepartname();
String owner = (String)selectInfoForm.getOwner();
String Pcname = (String)selectInfoForm.getPcname();
String username = (String)selectInfoForm.getUsername();
System.out.println(brand +"_____________"+buyTime+ "__________"+
departname+"________" +owner +"_____"+Pcname+"______________"+username);
StringBuffer clause = new StringBuffer("select * from infopc where 1=1 ");
if(!brand.equals("")){
clause.append("and brand='"+brand+"'");
}
if(!buyTime.equals("")){
clause.append("and buytime='"+buyTime+"'");
}
if(!departname.equals("")){
clause.append("and departname='"+departname+"'");
}
if(!owner.equals("")){
clause.append("and owner='"+owner+"'");
}
if(!Pcname.equals("")){
clause.append("and pcname='"+Pcname+"'");
}
if(!username.equals("")){
clause.append("and username='"+username+"'");
}
System.out.println("_______sql____________:" + clause);
DB db = null;
try {
db = new DB();
db.connDb();
ResultSet rs = db.executeQuery(clause.toString());
List list= new ArrayList();
while(rs.next()) {
//System.out.println("____ResultSet have value!___________");
//Integer.parseInt(arg0)
list.add(rs.getInt(1));
list.add(rs.getString(2));
list.add(rs.getString(3));
list.add(rs.getString(4));
list.add(rs.getString(5));
list.add(rs.getString(6));
list.add(rs.getString(7));
list.add(rs.getString(8));
list.add(rs.getString(9));
list.add(rs.getString(10));
list.add(rs.getString(11));
list.add(rs.getString(12));
list.add(rs.getString(13));
list.add(rs.getString(14));
list.add(rs.getString(15));
list.add(rs.getString(16));
list.add(rs.getString(17));
list.add(rs.getString(18));
list.add(rs.getString(19));
System.out.println("rs.getInt(1):"+rs.getInt(1));
System.out.println("list.size() :"+list.size());
System.out.println(rs.getInt(1)+rs.getString(2));
}
request.setAttribute("rsArray", list);
System.out.println("session_______setAttribute得值是:"+list);
System.out.println("____can run here!!!____________");
return mapping.findForward("success");
} catch (Exception e) {
} finally {
if (db != null)
db.closeDb();
}
return null;
}[/code]
解决了一个下午 有点迷糊了
[b]问题补充:[/b]
写了个类 com.xxx.struts.util.Pcinfo 得到新异常。。
javax.servlet.ServletException: Cannot find bean Pcinfo in any scope
while(rs.next()) {
//System.out.println("____ResultSet have value!___________");
//Integer.parseInt(arg0)
list.add(rs.getInt(1));
list.add(rs.getString(2));//depart
list.add(rs.getString(3));//owner
list.add(rs.getString(4));//pcname
list.add(rs.getString(5));//username
list.add(rs.getString(6));//post
list.add(rs.getString(7));//brand
list.add(rs.getString(8));//type
list.add(rs.getString(9));//cpu
list.add(rs.getString(10));//mem
list.add(rs.getString(11));//disksum
list.add(rs.getString(12));//ram
list.add(rs.getString(13));//iscrty
list.add(rs.getString(14));//buytime
list.add(rs.getString(15));//tele
list.add(rs.getString(16));//spec
list.add(rs.getString(17));//usething
list.add(rs.getString(18));//virus
list.add(rs.getString(19));//remark
Pcinfo ipform= new Pcinfo();
ipform.setBrand(rs.getString(7));
ipform.setBuytime(rs.getString(14));
ipform.setCpu(rs.getString(9));
ipform.setDepartname(rs.getString(2));
ipform.setDisksum(rs.getString(11));
ipform.setIscrystal(rs.getString(13));
ipform.setMemory(rs.getString(10));
ipform.setOwner(rs.getString(3));
ipform.setPcname(rs.getString(4));
ipform.setPost(rs.getString(6));
ipform.setRam(rs.getString(12));
ipform.setRemark(rs.getString(19));
ipform.setSpecsoft(rs.getString(16));
ipform.setTele(rs.getString(15));
ipform.setType(rs.getString(8));
ipform.setUsername(rs.getString(5));
ipform.setUsething(rs.getString(17));
ipform.setVirus(rs.getString(18));
list.add(ipform);
界面 如下:
写法不对?
你在request中的"rsArray"存放的是一个list
这个list里面有许多不同类型的值:getInt,getString.
但是取数据的时候却是告诉程序
rsArray是有一个JavaBeans的列表,
[code="java"] [/code]
并且JavaBean有属性owner
[code="java"][/code]
这个是错误的,
你需要建立一个RSObject类,将属性存进这个RSObject,并且保证RSObject有下列属性。
[code="java"]
[code="java"]
while(rs.next()) {
//System.out.println("____ResultSet have value!___________");
//Integer.parseInt(arg0)
list.add(rs.getInt(1));
list.add(rs.getString(2));
list.add(rs.getString(3));
list.add(rs.getString(4));
list.add(rs.getString(5));
list.add(rs.getString(6));
list.add(rs.getString(7));
list.add(rs.getString(8));
list.add(rs.getString(9));
list.add(rs.getString(10));
list.add(rs.getString(11));
list.add(rs.getString(12));
list.add(rs.getString(13));
list.add(rs.getString(14));
list.add(rs.getString(15));
list.add(rs.getString(16));
list.add(rs.getString(17));
list.add(rs.getString(18));
list.add(rs.getString(19));
System.out.println("rs.getInt(1):"+rs.getInt(1));
System.out.println("list.size() :"+list.size());
System.out.println(rs.getInt(1)+rs.getString(2));
}
[/code]
你在这里给list添加值 就想楼上说的 你没有给他放到一个Bean里 就是一个对象了
所以你就不能用了
你直接用EL输出一下${rsArray} 就行了 如果想哪么写就定义个对象
[code="java"]
while(rs.next()) {
//System.out.println("____ResultSet have value!___________");
// 对象
Obj obj = new Obj();
// 给对象赋值 从数据库中取出来的值
obj.setName(rs.getInt(1));
// 添加到集合中
list.add(obj);
}
[/code]
现在就保存到对象中了 就可以用bean:write 了