java代码如下,public <T> List<T> call(int factory, String startdate, String lastdate) {
@SuppressWarnings("rawtypes")
ArrayList list=new ArrayList();
try {
//获得链接、加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection ct = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.0.210:1522:TEST", "apps",
"appstest");
CallableStatement cs = ct
.prepareCall("{call CUX_YI_TEST_JAVA_CURSOR.main(?,?,?,?)}");
cs.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
cs.setInt(2, factory);
cs.setString(3, startdate);
cs.setString(4, lastdate);
cs.execute();
ResultSet rs = (ResultSet) cs.getObject(1);
//factoryps=list;
while (rs.next()){
for(int i=1;i<27;i++){
list.add(rs.getString(i));
}
}
factoryps=list;
System.out.println("aaaaa"+factoryps);
System.out.println("88888="+factoryps);
System.out.println("执行成功!");
cs.close();
ct.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
}
return (List<T>) factoryps;
}
jsp代码如下::<c:forEach var="Produce" items="${factoryps }">
<tr align="center" height="24px">
<td width="88">${factoryps.get(0)}</td>
<td width="122">${factoryps.get(1)}</td>
<td width="73">${factoryps.get(2)}</td>
<td width="70">${factoryps.get(3)}</td>
<td width="44">${factoryps.get(4)}</td>
<td width="100">${factoryps.get(5)}</td>
<td width="77">${factoryps.get(6)}</td>
<td width="115">${factoryps.get(7)}</td>
<td width="66">${factoryps.get(8)}</td>
<td width="126">${factoryps.get(9)}</td>因为调用的是存储过程所以,没有hibernate映射,所以取不到list的字段,只能index取,java代码在控制台输出的时候没有问题的,但是往 界面输出的时候只能输出第一列的结果,如何输出全部结果呢!!!求助!!
@SuppressWarnings("rawtypes")
ArrayList list=new ArrayList();
try {
//获得链接、加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection ct = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.0.210:1522:TEST", "apps",
"appstest");
CallableStatement cs = ct
.prepareCall("{call CUX_YI_TEST_JAVA_CURSOR.main(?,?,?,?)}");
cs.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
cs.setInt(2, factory);
cs.setString(3, startdate);
cs.setString(4, lastdate);
cs.execute();
ResultSet rs = (ResultSet) cs.getObject(1);
//factoryps=list;
while (rs.next()){
for(int i=1;i<27;i++){
list.add(rs.getString(i));
}
}
factoryps=list;
System.out.println("aaaaa"+factoryps);
System.out.println("88888="+factoryps);
System.out.println("执行成功!");
cs.close();
ct.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
}
return (List<T>) factoryps;
}
jsp代码如下::<c:forEach var="Produce" items="${factoryps }">
<tr align="center" height="24px">
<td width="88">${factoryps.get(0)}</td>
<td width="122">${factoryps.get(1)}</td>
<td width="73">${factoryps.get(2)}</td>
<td width="70">${factoryps.get(3)}</td>
<td width="44">${factoryps.get(4)}</td>
<td width="100">${factoryps.get(5)}</td>
<td width="77">${factoryps.get(6)}</td>
<td width="115">${factoryps.get(7)}</td>
<td width="66">${factoryps.get(8)}</td>
<td width="126">${factoryps.get(9)}</td>因为调用的是存储过程所以,没有hibernate映射,所以取不到list的字段,只能index取,java代码在控制台输出的时候没有问题的,但是往 界面输出的时候只能输出第一列的结果,如何输出全部结果呢!!!求助!!
解决方案 »
- js问题
- 用过URLConnection的朋友请看一下这个奇怪的问题。
- request.getParameter后台为什么取到null值
- java权限管理报错了!!! help--------(库存分为零了 - -)
- 我想成为程序员,前辈们指点下我
- 现在POI与JXL那个好用?对图片和函数支持更好?
- com/sun/enterpris这个包在那个jar文件中
- java新手问题就解答并讲解
- 有什么好的工具可以操作word文档呢?
- spring+hibernate配置双数据源的问题
- j2ee 数据比对 demo ,求指导!100分
- ————紧急求救~~~~~~~~CAS单点登录,退出之后用ticket参数访问抛出异常~~~~~ 求解决~~~~~
<tr>
<td>
<c:out value="${Produce}"></c:out>
</td>
</tr>
</c:forEach>
感觉你少个javaBean吧?或者POJO 或者的domain。。从数据库取出来的时候给封装到一个实体在封装到集合里
也方便前台输出
JScript code<c:forEach var="Produce" items="${factoryps }">
<tr>
<td>
${Produce}
</td>
</tr>
</c:forEach>jstl1.1以后,直接这样写吧
这样子的意思是直接输出list中的所有内容!,那样的话就是所有的内容都会排成一列!我需要给每个量做一个字段表头!
<tr>
<td>
${Produce}-------------------------这里${Produce.参数名}这样不就可以分开了吗
</td>
</tr>
</c:forEach>
示例:
<body>
<%
List<User> users = new ArrayList<User>();
for(int i=0;i<5;i++)
{
User user = new User();
user.setName("user_"+i);
user.setAge(22+i);
users.add(user);
}
request.setAttribute("users",users);
%>
<table cellpadding="0" cellspacing="0" width="60%" border="1">
<caption>用户列表</caption>
<tr><td>姓名</td>
<td>年龄</td>
<td>index</td>
<td>count</td>
</tr>
<c:forEach var="user" items="${users}" varStatus="status">
<tr class="${status.index%2+1}">
<td>${user.name}</td>
<td>${user.age}</td>
<td>${status.index}</td>
<td>${status.count}</td>
</tr>
</c:forEach>
</table>
</body>
Map map=new HashMap();
for(int i=1;i<27;i++){
map.put(Integer.toString(i),rs.getString(i));
}
list.add(map);
}
while (rs.next()){
for(int i=1;i<27;i++){
list.add(rs.getString(i));
}
}那也能封装成一个javaBean啊、 你这都有结果集了 当然能封装成一个List<泛型> 的集合你不用有映射文件的 一个DTO 专门用来存放结果集显示的类 而且这个类跟数据库里有没有该类的映射表完全没有关系、它只是一个用来存放类的显示集合、
<c:forEach var="x" begin="0" end="${fn:length(factoryps)}" step="1">
<tr align="center" height="24px">
<td width="88">${factoryps.get(x*26)}</td>
<td width="122">${factoryps.get(x*26+1)}</td>
<td width="73">${factoryps.get(x*26+2)}</td>
<td width="70">${factoryps.get(x*26+3)}</td>
<td width="44">${factoryps.get(x*26+4)}</td>
<td width="100">${factoryps.get(x*26+5)}</td。。报了个错,貌似是长度超出限制了!
我是准备在action里面在整一个变量比如:temp=factoryps.size()-1;
然后把temp 赋给end
不知道诸位有没有好点的点子!! 我感觉这个有点麻烦,
又是一堆get,set。
if (index >= size)
throw new IndexOutOfBoundsException(
"Index: "+index+", Size: "+size);
}因为index=size 所以抛出异常,,这个如果不管他 会出什么后果呢!!!
你这方法已经是List<T> 的返回类型了、 只要弄个dto(JavaBean) 强转一下就可以了 而你又弄了一堆方法为了输出Object里面的属性、那倒不如拿java反射做吧、
不会、 再说map也有LinkedHashMap() 也可以来保证顺序
java反射做啊 ,这个是不是也就相当于一个map了,这样子的话,我得预定义一个表头了!!!,,,我现在得到的list相当于是一个一维数组!!!