编程社区 » web开发 » 在servlet中把对象数组放进session,怎么在JSP页中取出来?

在servlet中把对象数组放进session,怎么在JSP页中取出来?


CKJ172



 发表:

在servlet中把对象数组放进session,怎么在JSP页中取出来?


在servlet中把对象放进session,在JSP中取出我已经做到,但当换了是数组就不行了,返回了一个null Execption,真不知如何是好。
我想做到的功能是查询数据库把所有文章的标题都显示出来。单用JSP页也可以实现,但我想只用JSP作显示,servlet作逻辑控制,请问各位有什么高见?


interpb
回复:

数组也是对象

应该是你代码的问题

贴出来看看

michaelkingdom
回复:

何必用数组呢,我觉得如果是新闻的话应该把数据库数据封装到对象中,再放到List里,在JSP页中得到List,做显示,这样做可以实现很多功能,排序,分页等等,而且过程比放到数组里简单。

CKJ172
回复:

在SERVLET中这样写:
laws = new lawBean[count];

int i=0;
while(rs.next()){
laws[i].setId(rs.getInt("id"));
laws[i].setDanwei(rs.getString("danwei"));
laws[i].setNumber(rs.getString("number"));
laws[i].setTitle(rs.getString("title"));
i++;
}
HttpSession session = request.getSession(false);
session.setAttribute("LAWS",laws);
在JSP中这样写:
<%@ page import="bean.lawBean"%>
<jsp:useBean id="LAWS" scope="session" class="bean.lawBean"/>
<%
lawBean[] laws = (lawBean[])LAWS;
if(laws==null){
out.print("None");}
else{
for(int i=0;i<=laws.length;i++){
out.print(laws[i].getDanwei() + "&nbsp;&nbsp;" + laws[i].getTitle() +

"&nbsp;&nbsp;" + laws[i].getNumber() + "&nbsp;&nbsp;

");
}
}
%>

CKJ172
回复:

在下菜鸟,不太会用,是这个类吗?java.lang.reflect.Array

qiang029
回复:

michaelkingdom(战士)
比较同意,你用的是OOP思想编程,用多用OOP看着也清楚,也便于调试和使用。
继承,封装,多态,要从你的代码中体现出来,养成良好的编程习惯。

js222
回复:

不要用数组。。。

用Vector或HashMap之类的就很好解决了。。

qiang029
回复:

你写个FormBean用于封装你的数据,
如:public class UserActionForm extends ActionForm {
private String user_name;
private String user_password;
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name= user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_age(String userpasswordage) {
this.user_password= user_password;
}
把数据通过setXXX(XXX xxx)方法放入FormBean中
再定义一个集合类型,如;list,verctor,等等调集合的ADD(FormBean)方法把FormBean放集合,
再把集合通过Session或request等等传入下一个页面,在jsp页面里再反向的把FormBean取出来,进行相应的操作,通过FormBean的getXXX()方法,把你开始放入FormBean的值取出来显视就OK了

rongdajian
回复:

我非常的同意qiang029(风) 的说法!这样做也是很理想的做法!可以试试吧!

boydream
回复:

关注~@_@~~

dreamover
回复:

有错误,改正如下:
laws = new lawBean[count];

int i=0;
while(rs.next()){
laws[i].setId(rs.getInt("id"));
laws[i].setDanwei(rs.getString("danwei"));
laws[i].setNumber(rs.getString("number"));
laws[i].setTitle(rs.getString("title"));
i++;
}
HttpSession session = request.getSession(false);
session.setAttribute("LAWS",laws);
在JSP中这样写:
<%@ page import="bean.lawBean"%>
<jsp:useBean id="LAWS" scope="session" class="bean.lawBean[]"/>
<%-- 这儿LAWS是lawBean[]类型的引用,你写成bean.lawBean当然有错了,你换成我改的这个写法试一下,这个也不一定对,因为在jsp:useBean中我也不知道能不能这样用,你自己试一下吧 --%>
<%
lawBean[] laws = (lawBean[])LAWS;
if(laws==null){
out.print("None");}
else{
for(int i=0;i<=laws.length;i++){
out.print(laws[i].getDanwei() + "&nbsp;&nbsp;" + laws[i].getTitle() +

"&nbsp;&nbsp;" + laws[i].getNumber() + "&nbsp;&nbsp;

");
}
}
%>

langya333
回复:

我觉得在servlet中还有个地方有错:
对于这段代码
laws = new lawBean[count];

int i=0;
while(rs.next()){
laws[i].setId(rs.getInt("id"));
laws[i].setDanwei(rs.getString("danwei"));
laws[i].setNumber(rs.getString("number"));
laws[i].setTitle(rs.getString("title"));
i++;
}
我觉得在laws[i].setXX()之前应该加一句laws[i] = new lawBean();
因为laws = new lawBean[count]过后laws只是一个数组,每个元素都是null。

另外,在JSP文件中,我不知道<jsp:useBean id="LAWS" scope="session" class="bean.lawBean[]"/>这样写是否正确,反正这样写一定对,你可以试试:
lawBean[] laws = (lawBean[]) session.getArribute("LAWS");

Jineral
回复:

还是qiang029(风) 的好

CKJ172
回复:

dreamover(梦醒了) 和 langya333(potato) 说的都不行啊
我想用ArrayList,但还是有问题,急啊,高手帮忙~~~!!!!

dreamover
回复:

ArrayList laws = new ArrayList();

while(rs.next()){
lawBean law = new lawBean();
law.setId(rs.getInt("id"));
law.setDanwei(rs.getString("danwei"));
law.setNumber(rs.getString("number"));
law.setTitle(rs.getString("title"));
laws.add(law);
}
HttpSession session = request.getSession(false);
session.setAttribute("LAWS",laws);
在JSP中这样写:
<%@ page import="bean.lawBean,java.util.ArrayList"%>
<%
ArrayList laws = (ArrayList)session.getAttribute("LAWS");
Iterator ls = laws.iterator();
while(ls.hasNext()){
lawBean l = (lawBean)ls.next();
out.println(l.getTitle());
}
%>

CKJ172
回复:

各位,这个问题还是解决不了啊。我想我不是第一个要这样写的人吧?有类似的代码嘛?贴出来看看啊!
急用啊~~~!!!!已经两天了!

LuJianjun5
回复:

呵呵
反正我没这样写过~~

langya333
回复:

dreamover(梦醒了) 写得很详细,而且很对呀。
你试了吗?不行吗?
哪里出的错?把错误贴出来

yjh133
回复:

楼主把完整代码贴出来吧。感觉不是这样用的,楼主要好好看下书!◎_

Nuage
回复:

dreamover(梦醒了)
的方法很不错的了啊!

kingwlee
回复:

确实如此,这是通用方法,简单明了

zyh999
回复:

dreamover(梦醒了)的方法就可以了,你干吗不用呢!

CKJ172
回复:

各位兄弟,我想实现的功能是查询数据库把所有符合要求的文章都列出来,用SERVLET去查询,用JSP作显示,应该怎么做?以上各种方法我都试过了,还是有问题,不过现在我用JSP直接操纵数据库了,问题看似解决,但这始终不是好的办法啊~


相关文章
怎么样在java中获得并控制一个进程所使用的内存大小
请大家帮忙看看这个聊天室是什么错误?如何解决
关于分页显示页码的问题,火急~~
怎么把resultset里面的内容删掉一些?
struts错误,高手请进
散分了,大家帮一下忙
请问如何判断用户ip是电信还是网通的
关于 Struts。 多谢大家乐
广域网发布JSP程序
美国公司急招用 PHP,JAVA,Script开发,做过电信项目的人
如何在JBuilder中调试JSP程序的问题.
博客界面拖拉自定义功能是基于什么技术实现的?
热门文章
java.net.ConnectException: Connection refused: connect的问题求救.
关于session超时处理的问题
求救:关于查询,大家看看有什么问题??
java/jsp中如何实现弹出对话框选择要保存的文件的路径
form提交到另一个页面时如何设置新页面的大小
求,怎样让点击过的链接变色,跟其他为点击链接不同
用itext读取服务器pdf文件,转为普通htm显示在网页上,求例子!!!!
IText 的问题
jsp中怎么打开ppt文件,不出现保存对话框
如何实现窗口全屏显示
在JSP中select多选时提交后在下一页面中怎样得到所选的内容?
为什么使用了utf-8中文还是乱码呢?

编程社区 2008 浙ICP备09013498号
© TinyBBS.cn
编程好站连接:codeproject sf.net codeplex