0 0

高手看看这个jsp看看错哪里了!!!30

<%
if(authors != null){
if(authors.size() != 0){
// for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(1);

%>
<tr>
<td width="150"><%=model.getAuthorID()%></td>
<td width="300"><%=model.getFirstName()%></td>
<td width="300"><%=model.getLastName()%></td>
<td width="230"><a href="">修改</a> | <a href="delete.jsp?id=<%=model.getAuthorID() %>">删除</a></td>
</tr>
<%
运行时出现空指针异常,出现在model.getAuthorID(),也就是model为空

问题补充:<%@page contentType="text/html;charset=gbk" %>
<%@page import="com.runwit.books.db.AuthorDAO"%>
<%@page import="java.util.List"%>
<%@page import="com.runwit.books.model.AuthorModel"%>
这是引包的部分

问题补充:
longxiaoyan 写道
哦,你前面已经判断了。估计authors 就是空的,后面的都没执行。

后面的执行了,我能确定,因为在AuthorModel model = authors.get(1); 前面加上if(authors.get(1) !=null){。。。}并把后面的代码框住就不执行了,也就是说authors不等于null而authors.get(1)确等于null,注明我authors有4个元素。

问题补充:
longxiaoyan 写道
后面加两个}

<%
//}
}}}
%>
这里已经有了

问题补充:
redstarofsleep 写道
引用

if(authors != null){
if(authors.size() != 0){
// for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(1);


这段代码是不是有问题,authors不为空,并且长度不是0的情况下,从里面get(1),拿第2个元素?如果只有一个元素呢?

有4个元素,我有判断过authors.size==4,并且get(0)也一样报错

问题补充:
高级java工程师 写道
if(authors != null){ 
if(authors.size() != 0){ 
// for(int i = 0;i<authors.size();i++){ 
AuthorModel model = authors.get(i); 

你get(i)
 

我是grt(1)不是get(i)

问题补充:
bd_cool 写道
“也就是说authors不等于null而authors.get(1)确等于null,注明我authors有4个元素。 ”

authors给的有问题,值不连续。

什么叫值不连续?能具体说说吗?authors的定义如下:
List<AuthorModel> authors
2012年3月11日 11:33

56个答案 按时间排序 按投票排序

0 0

这个问题 我也遇到过 在写ssi的时候 其实你的authors 集合里面有值 不过都是空
{null,null,null,null} size=4
我想你应该是没取到值

2012年3月26日 10:44
0 0

AuthorID 设置值了吗?即:setAuthorID() ???

2012年3月26日 09:51
0 0

首先应该确认一下,authors变量是否被用于多个线程了,如果是的话,可能是由于在其它线程中对authors中的元素进行了删除操作。
第二,AuthorModel model = authors.get(1); 这句有问题,为什么要写1呢?而不是i呢?
第三,确保获取的model不为空,即if(null != model) {//do your business}

2012年3月25日 15:50
0 0

你只对authors做了是否有item的判断,这判断只能说明authors至少有一个item项,有可能就只有一个,不过,你设置model时是取的第二个item.
  所以,当authors的大小是1时,model肯定就是空值了.

2012年3月24日 10:37
0 0

要把你用的到的类引进来...

2012年3月24日 09:22
0 0

建议你改成jsp + servlet,用debug调式。就什么都明白了!!!

2012年3月23日 19:06
0 0

<tr>
<td width="150"><%=model.getAuthorID()%></td>
<td width="300"><%=model.getFirstName()%></td>
<td width="300"><%=model.getLastName()%></td>
<td width="230"><a href="">修改</a> | <a href="delete.jsp?id=<%=model.getAuthorID() %>">删除</a></td>
</tr>

指针指向问题。
  按我下列代码尝试修改 
   

<% Integer id =model.getAuthorID()%>
<td width="150"><%=id%></td>
<td width="300"><%=model.getFirstName()%></td>
<td width="300"><%=model.getLastName()%></td>
<td width="230"><a href="">修改</a> | <a href="delete.jsp?id=<%=id %>">删除</a></td>

2012年3月23日 17:56
0 0

if(authors != null){
if(authors.size() != 0){
// for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(1);

这边是有问题的,authors.size() != 0 ,你就authors.get(1)? 最多authors.get(0)

2012年3月23日 13:29
0 0

AuthorModel model1 = new AuthorModel();
AuthorModel model2 = new AuthorModel();
AuthorModel model3 = new AuthorModel();
AuthorModel model4 = new AuthorModel();
List<AuthorModel > authors = new ArrayList<AuthorModel>();
authors.add(model1);
authors.add(model2);
authors.add(model3);
authors.add(model4);
你看看这些代码在运行一下,你的问题出现在这里,明白吧?
如果还不是的,请debug。

2012年3月23日 10:22
0 0

你这个AuthorModel 类是什么,如果是list的get(0)应该没问题,如果你继承了Map,那个get(0)取的就是key了

2012年3月23日 09:35
0 0

如果取get(1)的话你应该判断他的size()>=2,而不是判断它size()>0!希望注意

2012年3月22日 11:46
0 0

问题已经解决。可以结贴了

2012年3月22日 09:10
0 0

你的  list里面的值有是null的,所以你出错,  
你要保证 你塞进list里面 的值不为null。

2012年3月21日 11:14
0 0

按您说的,您可以把authors里的东西全部打印到页面上,一目了然,然后在看是哪里为空!

<%
if(authors != null){
if(authors.size() != 0){
for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(i);
%>
<tr>
<td width="150"><%=model.getAuthorID()%></td>
<td width="300"><%=model.getFirstName()%></td>
<td width="300"><%=model.getLastName()%></td>
<td width="230"><a href="">修改</a> | <a href="delete.jsp?id=<%=model.getAuthorID() %>">删除</a></td>
</tr>
<%}}%> 

2012年3月21日 09:52
0 0

if(authors != null){ 
if(authors.size() != 0){ 
// for(int i = 0;i<authors.size();i++){ 
//注意这里,用get(i)因为你get(1)可能对象是空了
AuthorModel model = authors.get(i); 

%> 

2012年3月21日 09:45
0 0

集合的size大于0,并不代表集合里边的元素不是null啊,看下面例子:
List list = new ArrayList();

list.add(null);
list.add(null);

结果:list.size()==2;
list.get(0) == null;

明白了没有?



public void testList(){
List<?> list = new ArrayList<Object>();

list.add(null);
list.add(null);
assertEquals(list.size(), 2);
assertNull(list.get(0));

}

2012年3月21日 08:48
0 0

同ls的。。

2012年3月20日 11:48
0 0

调试一下 
看看authors.get(1)是不是null,
authors的size为4,并不代表authors.get(1)不为null!

如【liveHappy】:不成对象,调用方法是不识别的,如果能找到?找不到就是常报NullPrint空指针异常。

2012年3月20日 11:27
0 0

get(1)改为get(i)
然后输出每一个get(i).getAuthorID(),看看是不是空

2012年3月20日 10:57
0 0

我的估计是本来authors .size==1,所以authors!=null&&authors.size()!=0;但authors.get(1)==null;后面就报空指针了,如果真是如此,get(1)改成get(0)即可

2012年3月19日 17:50
0 0

authors 是否封装的list<Object>泛型类型 不是 get(1)获取的对象不是Model类型只是一个数组元素

2012年3月19日 17:23
0 0

你是不是把4个null add进去了啊,null也算一个对象的吧,照你的程序,list size>0但是里面的对象却为空很有可能是这个问题啊

2012年3月19日 14:42
0 0

查询出来只有一条记录,list索引从0开始,当你取1就取不到那个对象。所以用对象时是空指针错误。

2012年3月19日 10:30
0 0

<% 
if(authors != null){ 
if(authors.size() != 0){ 
//	for(int i = 0;i<authors.size();i++){ 
AuthorModel model = authors.get(1); 

%> 



你是想把所有的数据显示出来,还是仅仅显示一条,

一条的话,仅仅取第一条 应该是get(0),  而且你判断的是size()!=0 ,只能保证authors中至少有一条数据,


显示所有的话,就用get(i).

2012年3月19日 10:24
0 0

AuthorModel model = authors.get(1);

应该是 AuthorModel model = authors.get(0);

2012年3月17日 16:02
0 0

加个断点调试一下。

2012年3月17日 10:52
0 0

能不能上debug时,‘variable’选项卡  [authors]变量的value详情截图??

2012年3月16日 19:25
0 0

jsp也可以debug的吧,你看看authors里面几个元素的值不就好了

2012年3月15日 14:51
0 0

简单一点,你直接给list对象先赋值,看看能不能读出来,然后再bean中输出查询的结果,有的话,说明页面有问题,没有的话,说明就是空值?你说呢?

2012年3月15日 14:13
0 0

List中是可以放Null元素的!断点一下不行了!简单的事情搞复杂!

2012年3月15日 10:14
0 0

把这个
AuthorModel model = authors.get(1);
强转一下,然后get(0)

2012年3月15日 10:05
0 0

<%
if(authors != null){
if(authors.size() != 0){
// for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(i);
if(model!=null){
%>
<tr>
<td width="150"><%=model.getAuthorID()%></td>
<td width="300"><%=model.getFirstName()%></td>
<td width="300"><%=model.getLastName()%></td>
<td width="230"><a href="">修改</a> | <a href="delete.jsp?id=<%=model.getAuthorID() %>">删除</a></td>
</tr>
<%
}
注意我加粗的两行。第一要么取get(0)要么get(i),第二判断model!=null

2012年3月14日 18:51
0 0

你应该用了泛型了吧,在存取元素的时候存的就是控制!

2012年3月14日 10:00
0 0

for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(i);
这里是get(i)不是get(1)

2012年3月13日 23:11
0 0

没有引入AuthorModel 的包,,当突然是空指针了..

2012年3月13日 21:55
0 0

难道是你authors里面,和模型不一致,就这奇怪了。。给分吧,不给死全家。。

2012年3月13日 21:45
0 0

把get(1)改成get(0)

2012年3月13日 21:43
0 0

你的SQL写错了,没查询出结果来,,

2012年3月13日 21:42
0 0

// for(int i = 0;i<authors.size();i++){
这里注释掉是什么意思?是故意这样写的吗?还是有其它意思?

2012年3月13日 15:27
0 0

AuthorModel model = authors.get(1);
应该是AuthorModel 对象,你引用的是<%@page import="com.runwit.books.model.AuthorModel"%> 包,
但你应该是犯了一个java大忌,对象要实例才为对象。
AuthorModel model = new AuthorModel();
model = authors.get(1);

不成对象,调用方法是不识别的,如果能找到?找不到就是常报NullPrint空指针异常。

2012年3月13日 01:02
0 0

用jstl吧,遍历用<c:foreach></c:foreach>
输出<c:out/>  方便多了~

2012年3月12日 14:49
0 0

你的authors里边放的是null,关键是,你的这个authors是在哪儿设置的值,在那里判断是否为null就好了,如果为null就不要加到authors里边就ok了。或者,这里多加一个判断:

。。。
AuthorModel model = authors.get(1);
if(model!=null){
%> 
<tr> 
<td width="150"><%=model.getAuthorID()%></td> 
<td width="300"><%=model.getFirstName()%></td> 
<td width="300"><%=model.getLastName()%></td> 
<td width="230"><a href="">修改</a> | <a href="delete.jsp?id=<%=model.getAuthorID() %>">删除</a></td> 
</tr> 
<% 
}
。。。

2012年3月12日 10:12
0 0

ArrayList允许空值。。。

2012年3月11日 23:15
0 0

引用
什么叫值不连续?能具体说说吗?authors的定义如下:
List<AuthorModel> authors

所谓不连续就是说,authors.get(0) !=null,而authors.get(1) ==null,再者authors.get(2) !=null,都为true.

2012年3月11日 18:39
0 0

“也就是说authors不等于null而authors.get(1)确等于null,注明我authors有4个元素。 ”

authors给的有问题,值不连续。

2012年3月11日 16:27
0 0

if(authors != null){ 
if(authors.size() != 0){ 
// for(int i = 0;i<authors.size();i++){ 
AuthorModel model = authors.get(i); 

你get(i)
 

2012年3月11日 14:38
0 0

引用

if(authors != null){
if(authors.size() != 0){
// for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(1);


这段代码是不是有问题,authors不为空,并且长度不是0的情况下,从里面get(1),拿第2个元素?如果只有一个元素呢?

2012年3月11日 13:52
0 0

引用
<% 

这里要引包。。。。。。。。。。。。。。。 
if(authors != null){ 
if(authors.size() != 0){ 
// for(int i = 0;i<authors.size();i++){ 
AuthorModel model = authors.get(1); 

%> 
也就是"高级java工程师"所指出的。

你可以这样改一下,
if(authors != null){ 
//if(authors.size() != 0){ 
for(int i = 0;i<authors.size();i++){ 
AuthorModel model = authors.get(i); 

2012年3月11日 13:48
0 0

后面加两个}

2012年3月11日 13:11
0 0

<%
if(authors != null){
if(authors.size() != 0){
// for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(1);
}
}
%>

2012年3月11日 13:10
0 0

哦,你前面已经判断了。估计authors 就是空的,后面的都没执行。

2012年3月11日 12:39
0 0

AuthorModel model = authors.get(1);
authors.get(1)返回是空值?

2012年3月11日 12:37
0 0

<% 

这里要引包。。。。。。。。。。。。。。。 
if(authors != null){ 
if(authors.size() != 0){ 
// for(int i = 0;i<authors.size();i++){ 
AuthorModel model = authors.get(1); 

%> 

2012年3月11日 11:45
0 0

JSP也和普通的类一样啊,用到什么类都需要导入的import

2012年3月11日 11:44
0 0

<%

这里要引包。。。。。。。。。。。。。。。
if(authors != null){
if(authors.size() != 0){
// for(int i = 0;i<authors.size();i++){
AuthorModel model = authors.get(1);

%>

2012年3月11日 11:38
0 0

大哥,你要把类引进来,  inport  xxx page

2012年3月11日 11:37

相关推荐

    如何成为JSP高手之一

    要精通JSP的学习者可以看看,能够指导你什么态度去学习JSP

    jsp的环境搭建及测试演示

    眼下,关于asp,jsp,php的动态网页技术的讨论可谓铺天盖地,尤其是asp,由于其容易上手(和vb差不多),在一些...对于jsp技术,本人只是知道毛皮,这篇文章也只是抱着讨论的目的,有什么不妥、不是之处还望高手海涵。

    JSP MySQL真分页.rar

    我的名字叫张帅,我很喜欢JSP。刚刚毕业,还没有找到工作,心里是郁闷的很...希望高手能继续改良,让这段代码更精一些。HOHO~~~~改完之的一定要发到网上供大家参考和使用,HOHO,千万另忘了告诉我呀,我的QQ:153815077

    MySQL真分页(jsp版)

    用法:不用写连接数据库等多余代码(在ConnLink.java文件中修改一下相关属性就可以了,如果不想写分页,在ConnLink.java文件中DBlink()方法可以返回一个Statement对象,然后就可以利用这个返回值去写你想要的代码了...

    java源码包---java 源码 大量 实例

     Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式  //给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener  在...

    JSP,servlet,javabean ,sql2005,论坛信息管理系统

    本论坛信息管理系统 是采用jsp,servlet,javabean....等技术,采用MVC模式, MyEclipse 6.0.1和SQL2005开发的、 本包里面有数据库文件,附加数据库可以直接运行看效果 本系统肯定有许多漏洞。由于时间关系(技术有限)...

    java高手的文章合集

    从文件名来看,这是一个分部分的集合,包括四个部分:part1到part4,这通常意味着内容较多,可能涵盖了Java的各个方面。 Java编程的基础知识点包括但不限于: 1. **基础语法**:如变量、数据类型、运算符、控制...

    JSP版MySQL真分页

    用法:不用写连接数据库等多余代码(在ConnLink.java文件中修改一下相关属性就可以了,如果不想写分页,在ConnLink.java文件中DBlink()方法可以返回一个Statement对象,然后就可以利用这个返回值去写你想要的代码了...

    Java+oracle OA简单系统

    就是楼主上个学生管理系统改的,蛋疼的severlet,具体搭载方法,所需软件见包里面的系统搭载说明书,楼主花了好多小时做的小白化说明书,数据库文件自己导入到数据库中,详情也见搭载说明书,实话说,你看完后要还是...

    从零开始-JSP动态网页制作基础培训教程

    这是搞的别人的,看了一下,非常适合入门级的选手,高手的话就没拿必要了。这个只是ppt课件,入门可以,如果想权威的学习的话,还是买书吧。不过可以先看ppt,在看书,可以更容易理解

    MySQL真分页(JSP修正版)

    修正版 以前有几处错误,现已经改正,并增加了几个功能,在此万分的报欠 ...希望高手能继续改良,让这段代码更精一些。HOHO~~~~改完之的一定要发到网上供大家参考和使用,HOHO,千万另忘了告诉我呀,我的QQ:153815077

    右侧悬浮联系方式

    jsp动态html,静态页面源码(1) java从菜鸟到大牛技术资料集合(1) 检查网站错误(1) 无刷新(1) 批量上传(1) dos入门,dos代码,dos教材(1) c#零基础到高手教程(1) div+css,做的网站,新手可以参考代码(天雷小组)(1) ...

    后台模板页面

    jsp无组件(1) jsp动态生成,jsp动态html,静态页面源码(1) java从菜鸟到大牛技术资料集合(1) 检查网站错误(1) 无刷新(1) 批量上传(1) dos入门,dos代码,dos教材(1) c#零基础到高手教程(1) div+css,做的网站,新手可以...

    一个很简单的过滤器一看就会

    本教程将深入讲解这个“一看就会”的简单过滤器,并通过DEMO演示其工作原理和实现方法。 过滤器的主要作用是拦截请求或响应,进行预处理或后处理。在Web应用程序中,它可以在请求到达目标Servlet或者JSP之前进行...

    JAVA自学之路

    信息筛选,搜索出来的结果不见得能够完全匹配,建议大家多阅读前几页的搜索结果,多打开几个网页看看,不过,我的经验是超过3页一般就没意义了,所以超过3页还没有找到合适的答案,或许应该调整一下关键词,或者放...

    一些自己写培训ppt,都是基础,高手勿看……(一)

    Java基础是编程学习的重要起点,尤其对于初学者来说,掌握扎实的Java基础知识是成为优秀程序员的基础。...这个压缩包中的资料可能包含了这些内容的讲解和示例,对于自学Java的人来说,是一份不错的学习资源。

    JAVA上百实例源码以及开源项目源代码

    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...

    java源码包2

     Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式  //给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener  在...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...

Global site tag (gtag.js) - Google Analytics