我需要了解如何在JSP页面中使用Bean并更新其属性。请分享一个例子。


useBean 动作非常通用。它首先使用id和scope变量搜索现有的对象。如果找不到对象,则尝试创建指定的对象。

加载Bean最简单的方法如下:

<jsp:useBean id = "name" class = "package.class" />

加载Bean类后,可以使用jsp:setPropertyjsp:getProperty动作来修改和检索Bean属性。

下表列出了与useBean动作相关的属性:

序号属性及描述
1class
指定Bean的完整包名。
2type
指定将引用该对象的变量的类型。
3beanName
给出java.beans.Beans类的instantiate()方法指定的Bean名称。

在给出与这些动作相关的有效示例之前,让我们讨论一下jsp:setPropertyjsp:getProperty动作。

<jsp:setProperty> 动作

setProperty动作设置Bean的属性。在执行此动作之前,必须先定义Bean。使用setProperty动作有两种基本方法:

您可以像下面这样在jsp:useBean元素之后但外部使用jsp:setProperty

<jsp:useBean id = "myName" ... />
   ...
<jsp:setProperty name = "myName" property = "someProperty" .../>

在这种情况下,无论是否实例化了新的Bean或找到了现有的Bean,都会执行jsp:setProperty

jsp:setProperty出现的第二个上下文是在jsp:useBean元素的主体内部,如下所示:

<jsp:useBean id = "myName" ... >
   ...
   <jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>

在这里,只有在实例化新对象时才执行jsp:setProperty,而不是在找到现有对象时。

下表列出了与setProperty动作相关的属性:

序号属性及描述
1name
指定将设置其属性的Bean。必须先定义Bean。
2property
指示要设置的属性。“*”表示所有名称与Bean属性名称匹配的请求参数都将传递给相应的setter方法。
3value
要分配给给定属性的值。如果参数的值为null或参数不存在,则忽略setProperty动作。
4param
param属性是要接收属性值的请求参数的名称。不能同时使用value和param,但允许两者都不使用。

<jsp:getProperty> 动作

getProperty动作用于检索给定属性的值,将其转换为字符串,最后将其插入输出。

getProperty动作只有两个属性,这两个属性都是必需的。getProperty动作的语法如下:

<jsp:useBean id = "myName" ... />
   ...
<jsp:getProperty name = "myName" property = "someProperty" .../>

下表列出了与getProperty动作相关的必需属性:

序号属性及描述
1name
要检索其属性的Bean的名称。必须先定义Bean。
2property
property属性是要检索的Bean属性的名称。

示例

让我们定义一个测试Bean,它将在我们的示例中进一步使用:

/* File: TestBean.java */
package action;

public class TestBean {
   private String message = "No message specified";

   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

将上述代码编译成生成的TestBean.class文件,并确保您将TestBean.class复制到C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action文件夹中,并且CLASSPATH变量也应设置为该文件夹:

现在在main.jsp文件中使用以下代码。这将加载Bean并设置/获取一个简单的String参数:

<html>
   <head>
      <title>Using JavaBeans in JSP</title>
   </head>
   <body>
      <center>
         <h2>Using JavaBeans in JSP</h2>
         <jsp:useBean id = "test" class = "action.TestBean" />
         <jsp:setProperty name = "test" property = "message"
          value = "Hello JSP..." />

         <p>Got message....</p>
         <jsp:getProperty name = "test" property = "message" />
      </center>
   </body>
</html>

现在让我们尝试访问main.jsp,它将显示以下结果:

Using JavaBeans in JSP
Got message....
Hello JSP...

更新于:2019-07-30

593 次浏览

启动你的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.