JSP-5.4 แท๊ก Action
5.4 แท๊ก Action
วิธีการที่จะให้เอกสาร JSP ของเราสามารถนำคอมโพเน็นต์บีนต่างๆ เข้ามาใช้งานได้นั้น จำเป็นต้องใช้แท็ก JSP ประเภท Action สำหรับรูปแบบการประกาศดังนี้
<jsp:useBean id=”name” class=”class_name” scope=”scope” / >
แท็ก <jsp:useBean> เป็นแท็กที่บอก JSP Engine ว่าเอกสาร JSP ต้อง
การใช้บีน โดยเราจะต้องกำหนดอากิวเมนต์ต่างๆ คือ
- id คือชื่อของบีน จะตั้งเป็นเป็นชื่ออะไรก็ได้โดยต่อไปเราจะอ้างบีนด้วย
ชื่อนี้
- class ชื่อของคลาสจาวาบีนที่ต้องการนำมาใช้งาน
- scope คือขอบเขตการเข้าถึงบีนเช่น session, page เป็นต้น ความ
หมายของ session ก็คือ จะใช้บีนตัวนี้ภายใน session เดียวเท่านั้นหาก session
ถูกทำลายไปบีนก็จะถูกทำลายไปด้วย หากการสร้าง session ใหม่บีนก็จะสร้าง
ขึ้นใหม่ด้วยเช่นกัน
สำหรับวิธีกำหนดคุณสมบัติต่างๆ ที่อยู่ในบีนมีรูปแบบการประกาศดังนี้
<jsp:setProperty name=”id” property=”property_name” / >
แท็ก <jsp:setProperty> เป็นแท็กที่บอก JSP Engine ว่าต้องการจะกำหนด
ค่าที่อยู่ในบีนโดยจะต้องบอกกับ JSP Engine ว่าต้องการกำหนดบีนตัวไหนผ่าน
ทาง name=”id” ซึ่ง id ก็คือ ชื่อของบีนที่เรากำหนดตอนใช้แท็ก <jsp:useBean>
นั่นเอง จากนั้นก็กำหนดว่าจะเลือกคุณสมบัติตัวไหนในบีนเมื่อเราได้กำหนด
คุณสมบัติของบีนไปแล้ววิธีการที่จะดึงค่าคุณสมบัติมีดังนี้
<jsp:getProperty name=”id” property=”property_name” / >
มีรูปแบบคล้ายกับวิธีการใช้แท็ก <jsp:setProperty> และมีรูปแบบการ
ประกาศได้อีกแบบคือ
id.getMethod()
id ก็คือชื่อของบีน แล้วก็เมธอดที่ขึ้นต้นด้วย get ตามด้วยคุณสมบัติ เช่น counter.getCount() เป็นต้น เพื่อให้เห็นภาพชัดเจน เราจะมาดูตัวอย่างจาก Source Code ชื่อ counterBean.jsp ที่ใช้แท็กเหล่านี้กัน โดยบันทึกไฟล์นี้ชื่อ counterBean.jsp ลงใน ไดเรกทอรี C:\Tomcat\Webapps\Tutorial\Example
อธิบาย Source Code ชื่อ counterBean.jsp
จากตัวอย่างเป็นการใช้ตัวนับ แต่คราวนี้เราใช้ตัวนับที่เป็นคอมโพเน็นต์
แทน โดยบรรทัดแรกได้ อิมพอร์ตคลาสที่ต้องการจะใช้ก็คือ คลาสจาวาบีนที่สร้าง
ขึ้นมาด้วยคำสั่ง
<%@ page import=”simpleCounterBean” %>
หาก Tomcat แจ้ง error กลับมาเช่น “Class not Found in import” แสดงว่า
ยังกำหนดตัวแปร classpath ไม่ถูกต้อง ให้ไปดูวิธีการกำหนดตัวแปรนี้อีกครั้ง
ในหัวข้อวิธีการสร้างบีน
จากนั้นก็บอก JSP Engine ว่าต้องการใช้คอมโพเน็นต์บีนด้วยคำสั่ง
<jsp:useBean id=”counter” class=”simpleCounterBean” scope=”session” />
โดยกำหนดชื่อบีนไว้ว่า counter และคลาสก็คือ simpleCounterBean โดยกำหนด scope เป็น session จากนั้นก็ดึงค่าคุณสมบัติมาแสดงผลด้วยคำสั่ง
counter.getCount()
Counter ก็คือชื่อของบีน และ getCount() คือ เมธอดที่ดึงค่าคุณสมบัติจาก
บีนซึ่งสามารถเปลี่ยนคำสั่งนี้เป็น
<jsp:getProperty name=”counter” property=”count” / >
ผลลัพธ์ที่ได้จะเหมือนกัน







