<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.lpy.BookInfo"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<% request.setCharacterEncoding("utf-8");
com.lpy.BookInfo book = null;
if(request.getAttribute("book")==null){
book = new com.lpy.BookInfo();
request.setAttribute("book", book);
} else {
book = request.getAttribute("book");
} %>
</body>
</html>报 org.apache.jasper.JasperException: Attempted a bean operation on a null object.
用JAVA代码来操作不就是这么写吗,到底哪错了??
你有request.setAttribute("book",object); 吗 ? 没有就会报错
book = request.getAttribute("book");
}这里要强转成 book =(BookInfo) request.getAttribute("book");
他的问题可能是之前book置null了,在if语句中对book操作的问题吧~
判断是否有这个"book"对象不应该有错啊。
session对象不也是这样的吗? 不太明白。再说我也有request.setAttribute("book", book); 语句啊
貌似你只把BOOK实例化了但是没有给BOOK赋值,这时候的BOOK仍然是NULL
实例化后应该也是不会报错的奇怪,除非是BookInfo得问题,放出来的那段,除了没有强制转换外,应该是没有语法错误的。可是没有强制转换应该不是那个报错额= =
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public long getPrice() {
return price;
}
public void setPrice(long price) {
this.price = price;
}
public boolean isSale() {
return sale;
}
public void setSale(boolean sale) {
this.sale = sale;
}
String bookname;
String author;
long price;
boolean sale;
}这是BEAN代码。。
即使把所有的都删掉,只用了 request.getAttribute("book"); 这么一句也不好使。
这个语句要有强制类型转换的
1.if(request.getAttribute("book")==null)改成if(request.getAttribute("book")==null || request.getAttribute("book").equals("null") || request.getAttribute("book").equals(""))2.就是注意大家都说的强制类型转换了,book =(BookInfo) request.getAttribute("book");
我觉得这个在误人子弟呀!
还是我水平太次、对象用equals 判断 null 和 空字符……
求解?何意
我觉得还是 request.getAttribute("book")==null 这句有问题,