Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ตัวอย่างการใช้ Bean และอัปเดต Properties ใน JSP


Action useBean มีความหลากหลาย มันค้นหาออบเจ็กต์ที่มีอยู่ก่อนโดยใช้ตัวแปร id และ scope หากไม่พบออบเจ็กต์ มันจะพยายามสร้างออบเจ็กต์ที่ระบุ

วิธีที่ง่ายที่สุดในการโหลด Bean คือดังนี้ -

<jsp:useBean id = "name" class = "package.class" />

เมื่อโหลดคลาส Bean แล้ว คุณสามารถใช้ jsp:setProperty และ jsp:getProperty Actions เพื่อแก้ไขและดึงคุณสมบัติของ Bean

ตารางต่อไปนี้รายการแอตทริบิวต์ที่เกี่ยวข้องกับ Action useBean -

ลำดับ แอตทริบิวต์และคำอธิบาย
1 class
ระบุชื่อแพ็กเกจเต็มของ Bean
2 type
ระบุชนิดของตัวแปรที่จะอ้างอิงถึงออบเจ็กต์
3 beanName
ให้ชื่อของ Bean ตามที่ระบุโดยเมธอด instantiate() ของคลาส java.beans.Beans

ตอนนี้มา談論 Action jsp:setProperty และ jsp:getProperty ก่อนจะให้ตัวอย่างที่ถูกต้องเกี่ยวกับ Action เหล่านี้

Action <jsp:setProperty>

Action setProperty ตั้งค่าคุณสมบัติของ Bean Bean ต้องถูกกำหนดไว้ก่อนหน้านี้ มี 2 วิธีพื้นฐานในการใช้ Action setProperty -

คุณสามารถใช้ jsp:setProperty หลัง แต่นอกเหนือจากองค์ประกอบ jsp:useBean ดังนี้ -

<jsp:useBean id = "myName" ... /> ... <jsp:setProperty name = "myName" property = "someProperty" .../>

ในกรณีนี้ jsp:setProperty จะทำงานไม่ว่าจะมี Bean ใหม่ถูกสร้างหรือพบ Bean เดิม

บริบทที่สองที่ jsp:setProperty อาจปรากฏคือ ภายใน Body ขององค์ประกอบ jsp:useBean ดังนี้ -

<jsp:useBean id = "myName" ... > ... <jsp:setProperty name = "myName" property = "someProperty" .../> </jsp:useBean>

ที่นี่ jsp:setProperty จะทำงานก็ต่อเมื่อมีออบเจ็กต์ใหม่ถูกสร้าง ไม่ใช่เมื่อพบออบเจ็กต์เดิม

ตารางต่อไปนี้รายการแอตทริบิวต์ที่เกี่ยวข้องกับ Action setProperty -

ลำดับ แอตทริบิวต์และคำอธิบาย
1 name
ระบุ Bean ที่คุณสมบัติจะถูกตั้งค่า Bean ต้องถูกกำหนดไว้ก่อนหน้านี้
2 property
ระบุคุณสมบัติที่ต้องการตั้งค่า ค่า "*" หมายถึงพารามิเตอร์คำขอทั้งหมดที่ชื่อตรงกับชื่อคุณสมบัติ Bean จะถูกส่งไปยัง Setter Methods ที่เหมาะสม
3 value
ค่าที่จะกำหนดให้คุณสมบัติที่กำหนด หากค่าพารามิเตอร์เป็น null หรือพารามิเตอร์ไม่มีอยู่ Action setProperty จะถูกเพิกเฉย
4 param
แอตทริบิวต์ param คือชื่อพารามิเตอร์คำขอที่คุณสมบัติจะรับค่า ไม่สามารถใช้ value และ param พร้อมกันได้ แต่อนุญาตให้ใช้ทั้งคู่ไม่ได้

Action <jsp:getProperty>

Action getProperty ใช้ดึงค่าของคุณสมบัติที่กำหนดและแปลงเป็น String แล้วแทรกเข้าไปในเอาต์พุท

Action getProperty มีแอตทริบิวต์เพียง 2 ตัว ทั้งคู่จำเป็น ไวยากรณ์ของ Action getProperty ดังนี้ -

<jsp:useBean id = "myName" ... /> ... <jsp:getProperty name = "myName" property = "someProperty" .../>

ตารางต่อไปนี้รายการแอตทริบิวต์ที่จำเป็นเกี่ยวกับ Action getProperty -

ลำดับ แอตทริบิวต์และคำอธิบาย
1 name
ชื่อของ Bean ที่มีคุณสมบัติที่จะดึง Bean ต้องถูกกำหนดไว้ก่อนหน้านี้
2 property
แอตทริบิวต์ property คือชื่อคุณสมบัติของ Bean ที่จะดึง

ตัวอย่าง

ลองกำหนด 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 จะแสดงผลลัพธ์ดังนี้ -

Using JavaBeans in JSP Got message.... Hello JSP...