首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >useBean标签

useBean标签
EN

Stack Overflow用户
提问于 2009-06-30 06:56:57
回答 2查看 891关注 0票数 3

我对Head First servlets的以下两行感到困惑&第349页的JSP书籍:

  1. 是一种声明和初始化在.中使用的实际bean对象的方法。

2.使用声明和使用intializea属性。

代码语言:javascript
复制
<jsp:useBean> <jsp:useBean id="person"class="foo.Person" scope="request"/>

在第一行中,他们为什么将属性作为对象调用?

因为属性是与作用域绑定的名称/值对,比如请求会话。

EN

回答 2

Stack Overflow用户

发布于 2009-07-01 15:26:16

代码语言:javascript
复制
<jsp:useBean id="person"class="foo.Person" scope="request"/>

这将调用foo.Person的默认构造函数。

id "person“允许您在jsp页面上引用Bean

代码语言:javascript
复制
<div>   
    <c:out value="${person.name}" />
</div>

作用域是Bean foo.Person的作用域

用于useBean的JSP语法引用对每个作用域都有定义。

所以你的JavaBean看起来会像这样

代码语言:javascript
复制
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;
    }

}

如果Person Bean已经在您的引用范围中实例化,useBean将定位并提供Bean,以便在您的JSP页面上的表达式和抄写器中使用。

票数 1
EN

Stack Overflow用户

发布于 2009-06-30 09:06:33

代码语言:javascript
复制
<jsp:useBean id="person" class="foo.Person" scope="request"/>

在这一行中,请求范围中的属性"person“将是"foo.Person”类型的对象实例。

Apache 6实现将标记转换为以下Java代码:

代码语言:javascript
复制
  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);
    }
  }

_jspx_page_context是PageContext的一个实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1062111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档