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

useBean的动作是相当多才多艺。它首先使用id和scope变量搜索现有对象。如果找不到对象,则尝试创建指定的对象。

加载bean的最简单方法如下-

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

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

下表列出了与useBean操作关联的属性-

序号属性和说明
1class
指定Bean的完整软件包名称。
2type
指定将引用该对象的变量的类型。
3beanName
给出由java.beans.Beans类的实例化()方法指定的bean的名称。

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

<jsp:setProperty>操作

的setProperty操作设置一个bean的属性。在执行此操作之前,必须预先定义Bean。有两种使用setProperty操作的基本方法-

您可以在jsp:useBean元素之后但在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...