Action useBean khá linh hoạt. Nó đầu tiên tìm kiếm một đối tượng hiện có bằng cách sử dụng các biến id và scope. Nếu không tìm thấy đối tượng, nó sẽ cố gắng tạo đối tượng được chỉ định.
Cách đơn giản nhất để nạp một bean:
<jsp:useBean id = "name" class = "package.class" />
Khi một bean class đã được nạp, bạn có thể sử dụng jsp:setProperty và jsp:getProperty actions để sửa đổi và truy xuất các thuộc tính của bean.
Bảng sau liệt kê các thuộc tính liên quan đến action useBean:
| STT | Thuộc tính & Mô tả |
|---|---|
| 1 | class Chỉ định tên package đầy đủ của bean. |
| 2 | type Chỉ định kiểu của biến sẽ tham chiếu đến đối tượng. |
| 3 | beanName Đưa ra tên của bean như được chỉ định bởi phương thức instantiate() của lớp java.beans.Beans. |
Hãy thảo luận về action jsp:setProperty và jsp:getProperty trước khi đưa ra ví dụ hợp lệ liên quan đến các action này.
Action <jsp:setProperty>
Action setProperty thiết lập các thuộc tính của một Bean. Bean phải đã được định nghĩa trước action này. Có hai cách cơ bản để sử dụng setProperty action:
Bạn có thể dùng jsp:setProperty sau, nhưng bên ngoài element jsp:useBean:
<jsp:useBean id = "myName" ... /> ... <jsp:setProperty name = "myName" property = "someProperty" .../>
Trong trường hợp này, jsp:setProperty được thực thi bất kể bean mới được khởi tạo hay bean hiện có được tìm thấy.
Bối cảnh thứ hai là bên trong body của element jsp:useBean:
<jsp:useBean id = "myName" ... > ... <jsp:setProperty name = "myName" property = "someProperty" .../> </jsp:useBean>
Ở đây, jsp:setProperty chỉ thực thi nếu object mới được khởi tạo, không phải nếu object hiện có được tìm thấy.
Bảng thuộc tính của action setProperty:
| STT | Thuộc tính & Mô tả |
|---|---|
| 1 | name Chỉ định bean mà thuộc tính của nó sẽ được set. Bean phải đã được định nghĩa trước. |
| 2 | property Chỉ ra thuộc tính bạn muốn set. Giá trị "*" nghĩa là tất cả request parameter khớp tên sẽ được truyền đến setter. |
| 3 | value Giá trị gán cho thuộc tính. Nếu param null hoặc không tồn tại, action bị bỏ qua. |
| 4 | param Tên request parameter mà giá trị sẽ được nhận bởi property. Không dùng value và param cùng lúc. |
Action <jsp:getProperty>
Action getProperty lấy giá trị của một thuộc tính, chuyển thành string và chèn vào output.
Action getProperty có hai thuộc tính bắt buộc. Cú pháp:
<jsp:useBean id = "myName" ... /> ... <jsp:getProperty name = "myName" property = "someProperty" .../>
Bảng thuộc tính bắt buộc:
| STT | Thuộc tính & Mô tả |
|---|---|
| 1 | name Tên Bean có thuộc tính cần lấy. Bean phải đã được định nghĩa trước. |
| 2 | property Tên thuộc tính Bean cần lấy. |
Ví dụ
Định nghĩa test 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; }
}
Biên dịch, copy TestBean.class vào C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action, set CLASSPATH.
Mã trong main.jsp:
<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>
Truy cập main.jsp, kết quả:
Using JavaBeans in JSP Got message.... Hello JSP...