Java useBean标签
我对第349页的Head First servlets&JSP手册中的以下两行内容感到困惑:Java useBean标签,java,jsp,servlets,Java,Jsp,Servlets,我对第349页的Head First servlets&JSP手册中的以下两行内容感到困惑: 是一种声明和初始化实际使用的bean对象的方法。 2.使用 <jsp:useBean> <jsp:useBean id="person"class="foo.Person" scope="request"/> 在第一行中,他们为什么将属性称为对象 因为属性是绑定到范围的名称/值对,比如请求、会话 <jsp:useBean id="person" class="foo.
<jsp:useBean> <jsp:useBean id="person"class="foo.Person" scope="request"/>
在第一行中,他们为什么将属性称为对象
因为属性是绑定到范围的名称/值对,比如请求、会话
<jsp:useBean id="person" class="foo.Person" scope="request"/>
_jspx_页面_上下文是的一个实例
如果Person Bean已经在您引用的范围内实例化,那么useBean将定位该Bean并使其可用于JSP页面上的表达式和scriplets中。我认为您错了,因为对象是一个实例,但您将实例视为引用而不是对象。如果我错了,请纠正我。
foo.Person person = null;
synchronized (request) {
person = (foo.Person) _jspx_page_context.getAttribute("person",
PageContext.REQUEST_SCOPE);
if (person == null){
person = new foo.Person();
_jspx_page_context.setAttribute("person", person,
PageContext.REQUEST_SCOPE);
}
}
<jsp:useBean id="person"class="foo.Person" scope="request"/>
<div>
<c:out value="${person.name}" />
</div>
package foo;
public class Person {
private String name;
public Person() {
this.name = "jack"
}
public String getName() {
return name;
}
public void setName(String n) {
this.name = n;
}
}