如何使用动作在 JSP 中?


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

您可以将 jsp:setProperty 放在 jsp:useBean 元素之后,但在其外部,如下所示:

<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,但允许两者都不使用。

示例

让我们定义一个测试 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 并设置/获取一个简单的字符串参数:

<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,它将显示以下结果:

在 JSP 中使用 JavaBeans

Got message....
Hello JSP...

更新于: 2019-07-30

1K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.