Giả sử đã xây dựng một JavaBean là TimeBean với 2 phương thức: public int getHours()
public void setHours(int h)
hãy cho biết lệnh nào sau đây là đúng trong trang JSP?
id="TimeBean1" scope="request"/>
name="TimeBean1" value="10"/>
name="TimeBean" property="hours"/>
<%TimeBean1.setHours(10);%>
Giả sử đã xây dựng một JavaBean là TimeBean với 2 phương thức: public int getHours()
public void setHours(int h)
hãy cho biết lệnh nào sau đây là đúng trong trang JSP?
<%TimeBean1.setHours(10);%>
Trả lời:
Đáp án đúng: D
Câu hỏi này kiểm tra kiến thức về cách sử dụng JavaBean trong trang JSP, đặc biệt là các thẻ jsp:useBean, jsp:setProperty và jsp:getProperty, cũng như cách truy cập trực tiếp thông qua scriptlet.
* **Lệnh 1:** ` ` Khai báo một JavaBean với id là "TimeBean1" và phạm vi là request. Lệnh này đúng cú pháp và có chức năng khai báo một bean để sử dụng.
* **Lệnh 2:** ` ` Lệnh này thiếu thuộc tính `property`. Để set giá trị cho thuộc tính `hours` của bean `TimeBean1`, ta cần chỉ rõ thuộc tính cần set. Ví dụ: ` `. Vì thiếu `property`, lệnh này sai.
* **Lệnh 3:** ` ` Lệnh này sai vì `name` phải khớp với `id` của bean đã khai báo. Ở lệnh 1, id là `TimeBean1`, trong khi ở lệnh 3 lại là `TimeBean`. Ngoài ra, lệnh này chỉ lấy giá trị nhưng không hiển thị giá trị đó ra trang JSP.
* **Lệnh 4:** `<%TimeBean1.setHours(10);%>` Lệnh này sử dụng scriptlet để gọi phương thức `setHours` của bean `TimeBean1`. Để sử dụng được cách này, bean `TimeBean1` phải được khai báo trước đó. Tuy nhiên, cách này không được khuyến khích vì nó làm mất tính trong sáng của JSP và khó bảo trì.
Trong 4 lệnh trên, lệnh 1 đúng về mặt cú pháp và chức năng khai báo bean. Tuy nhiên, đề bài hỏi lệnh nào đúng trong việc *sử dụng* bean để set và get giá trị. Lệnh 4 có thể đúng nếu bean đã được khởi tạo và có thể truy cập được, nhưng nó sử dụng scriptlet, là cách không được khuyến khích. Lệnh 2 sai vì thiếu thuộc tính property. Lệnh 3 sai vì name không khớp và thiếu hiển thị giá trị. Do đó, không có đáp án nào hoàn toàn đúng theo yêu cầu của đề bài.