Book.java源代码:
package book;public class Book
{
private String id;
private String name;
private String title; public void setId(String id){
this.id=id;
} public void setName(String name){
this.name=name;
} public void setTitle(String title){
this.title=title;
} public String getId(){
return this.id;
} public String getName(){
return this.name;
} public String getTitle(){
return this.title;
}}BookBean.java源代码:
package book;import java.sql.*;
import java.util.*;public class BookBean{
private DataBaseCon dbcon=new DataBaseCon();
private Connection con=null; public BookBean(){
this.con=dbcon.getCon();
}
public Collection getBooks() throws Exception
{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from book");
Collection ret=new ArrayList();
while(rs.next())
{
Book temp=new Book();
temp.setId(rs.getString("id"));
temp.setName(rs.getString("name"));
temp.setTitle(rs.getString("title"));
ret.add(temp);
}
return ret;
}}
book.jsp源代码:
<%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@taglib uri="/WEB-INF/c.tld" prefix="c"%>
<%@page contentType="text/html; charset=GBK"%>
<html:html>
<head>
<title>bookstore </title>
</head>
<body>
<center> <h4>请选择想购买的书:</h4>
<table align="center" bgcolor="#008800" border="0" cellpadding="5" cellspacing="2">
<tr bgcolor="#ccccc">
<td align="center" width="70" height="15">书的编号</td>
<td align="center" width="130" height="15">书名</td>
<td align="center" width="45" height="15">作者</td>
</tr> <jsp:useBean id="booksbean" scope="session" class="book.BookBean"/>
<c:set var="books" value="${booksbean.books}"/>
<logic:iterate id="temp1" name="books">
<tr bgcolor="#ccccc">
<td align="center" height="15">
<bean:write name="temp1" property="id"/>
</td>
<td align="center" height="15">
<bean:write name="temp1" property="title"/>
</td>
<td align="center" height="15">
<bean:write name="temp1" property="name"/>
</td>
</tr>
</logic:iterate>
</table>
</center>
</body>
</html:html>
在Builder2006中编译出错:
javax.servlet.ServletException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${booksbean.books}": An error occurred while getting property "books" from an instance of class book.BookBean (java.lang.NullPointerException)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:492)
at org.apache.jsp.book_jsp._jspService(book_jsp.java:177)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
package book;public class Book
{
private String id;
private String name;
private String title; public void setId(String id){
this.id=id;
} public void setName(String name){
this.name=name;
} public void setTitle(String title){
this.title=title;
} public String getId(){
return this.id;
} public String getName(){
return this.name;
} public String getTitle(){
return this.title;
}}BookBean.java源代码:
package book;import java.sql.*;
import java.util.*;public class BookBean{
private DataBaseCon dbcon=new DataBaseCon();
private Connection con=null; public BookBean(){
this.con=dbcon.getCon();
}
public Collection getBooks() throws Exception
{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from book");
Collection ret=new ArrayList();
while(rs.next())
{
Book temp=new Book();
temp.setId(rs.getString("id"));
temp.setName(rs.getString("name"));
temp.setTitle(rs.getString("title"));
ret.add(temp);
}
return ret;
}}
book.jsp源代码:
<%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@taglib uri="/WEB-INF/c.tld" prefix="c"%>
<%@page contentType="text/html; charset=GBK"%>
<html:html>
<head>
<title>bookstore </title>
</head>
<body>
<center> <h4>请选择想购买的书:</h4>
<table align="center" bgcolor="#008800" border="0" cellpadding="5" cellspacing="2">
<tr bgcolor="#ccccc">
<td align="center" width="70" height="15">书的编号</td>
<td align="center" width="130" height="15">书名</td>
<td align="center" width="45" height="15">作者</td>
</tr> <jsp:useBean id="booksbean" scope="session" class="book.BookBean"/>
<c:set var="books" value="${booksbean.books}"/>
<logic:iterate id="temp1" name="books">
<tr bgcolor="#ccccc">
<td align="center" height="15">
<bean:write name="temp1" property="id"/>
</td>
<td align="center" height="15">
<bean:write name="temp1" property="title"/>
</td>
<td align="center" height="15">
<bean:write name="temp1" property="name"/>
</td>
</tr>
</logic:iterate>
</table>
</center>
</body>
</html:html>
在Builder2006中编译出错:
javax.servlet.ServletException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${booksbean.books}": An error occurred while getting property "books" from an instance of class book.BookBean (java.lang.NullPointerException)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:492)
at org.apache.jsp.book_jsp._jspService(book_jsp.java:177)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
解决方案 »
- 求Mysql一个表的每个字段都可以在JSP页面点击提交后,自动删除并更新页面后不显示此字段
- 推荐几本好书
- 求助空指针异常问题
- struts,页面本身中文正常,action后变为乱码,有过滤器,redirect=true又是中文?
- 网页插件的自动安装问题,散分了。
- 公司打算开发一个网络语音/视频功能的网上系统,一时对结构没有头绪,请大家出来指点一下系统设计的结构就成,拜托了!
- 在JAVA中怎么判断输入的是字符标点符号和数字啊?
- extjs中怎么多选框,怎么选中一个后,跟着自动选中另一个
- 请问一个关于session和java bean的概念性的问题!!!!!!!!!!!!!!!!!!!!
- 连接池调用的问题!!!
- 怎样将字符串“0023”加1,变成“0024”?
- stuts中如何使用frame
<logic:iterate id="temp1" name="books">
这里操作时就会抛空指针异常
在tomcat的work目录下 也可以直接在tomcat目录下搜索
用断点跟踪一下不是什么很难的事情。还有啊 ,你标签用的太混乱了 既然 有 bean:define你何苦要求去扩展标签,如果我没有说错的话。<c:set var="books" value="${booksbean.books}"/>
得不到books必然报空指针异常。${booksbean.books}这样的写法通常是得到某个属性的值。
我不搞Struts好多年,已经用Webwork了。但是Sturs是我的老本行,以上内容供你参考
说的是对的
用逻辑控件判断一下是否存在就行了