我真的不明白为什么JSP中的以下代码运行正常,但正如Head第一本书所述,它将显示编译时错误。
<html><body>
<jsp:useBean id="person" type="foo.Person" scope="request">
<jsp:setProperty name="person" property="name" value="Fred"/>
</jsp:useBean>
<jsp:getProperty name="person" property="name"/>
</body></html>
Person类的代码是:
package foo;
public class Person extends foo.Person1
{
private String s;
public void setEmpID(String s)
{
this.s=s;
}
public String getEmpID()
{
return s;
}
}
和在servlet类中实例化foo.Person并将其设置为请求范围中的“Person”属性的代码是:
Person1 p=new Person();
p.setName("Greenhorn");
request.setAttribute("person",p);
Person1 bean类的代码是:
package foo;
public abstract class Person1
{
private String s;
public void setName(String s)
{
this.s=s;
}
public String getName()
{
return s;
}
}
为什么它有效?为什么它没有显示任何错误?这本书错了吗?
提前感谢任何建议。
答案 0 :(得分:0)
编辑:在页面356上,黑框表示:“如果没有类bean,则使用类型必须已存在。”书中示例的范围是页面而不是请求。