在JSP中使用jsp标准动作<jsp:useBean>时,若作用域中不存在对应该id的对象,则会创建新的Bean对象,而创建新的对象需要调用模型类的无参构造器!代码如下:
模型类Beer.java
<span style="font-size:18px;">package com.iver99.vo;
public class Beer {
private String name;
private int sum;
/*public Beer(){}*/ <span style="color:#ff0000;"> //必须存在无参的构造器!</span>
public Beer(String name, int sum) {
super();
this.name = name;
this.sum = sum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
}
</span>
JSP页面代码:view.jsp
啤酒信息如下
<jsp:useBean id="beer1" class="com.iver99.vo.Beer" scope="session">
<jsp:setProperty name="beer1" property="name" value="laoshan"/>
<jsp:setProperty name="beer1" property="sum" value="100"/>
</jsp:useBean>
<br /> 啤酒名字为<jsp:getProperty property="name" name="beer1"/>
<br /> 啤酒数量为<jsp:getProperty property="sum" name="beer1"/>
报错:
org.apache.jasper.JasperException: /view.jsp (line: 30, column: 1) The value for the useBean class attribute com.iver99.vo.Beer is invalid.