如何在JSP中使用 动作?
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操作关联的属性-
指定将设置其属性的bean。Bean必须已经预先定义。
表示要设置的属性。值“*”表示名称与bean属性名称匹配的所有请求参数都将传递给适当的setter方法。
将分配给给定属性的值。参数的值为null,或者参数不存在,将忽略setProperty操作。
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并设置/获取一个简单的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,它将显示以下结果-
在JSP中使用JavaBeans
Got message.... Hello JSP...