แท็กการดำเนินการ JSP
JSP Action คืออะไร?
การดำเนินการ JSP ใช้โครงสร้างในไวยากรณ์ XML เพื่อควบคุมลักษณะการทำงานของเอ็นจิ้นเซิร์ฟเล็ต เราสามารถแทรกไฟล์แบบไดนามิก, นำส่วนประกอบ bean มาใช้ซ้ำ, ส่งต่อผู้ใช้ไปยังหน้าอื่น ฯลฯ ผ่านการดำเนินการของ JSP เช่น รวม และ ส่งต่อ การดำเนินการต่างจากคำสั่งตรงที่จะมีการประเมินใหม่ทุกครั้งที่มีการเข้าถึงเพจ
ไวยากรณ์:
<jsp:action_name attribute="value" />
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เกี่ยวกับการดำเนินการมาตรฐานของ JSP แท็ก JSP Standard Action ใช้สำหรับควบคุมลักษณะการทำงานของเซิร์ฟเล็ตเอ็นจิ้น
รายชื่อแท็กการกระทำที่ใช้ทั่วไปใน JSP
มีแท็กการดำเนินการมาตรฐาน 11 ประเภทใน JSP และนี่คือรายการทั้งหมดของพวกเขา
ชื่อแท็กการกระทำ | วากยสัมพันธ์ | Descriptไอออน |
---|---|---|
jsp:useBean | ใช้ในการเรียกและใช้บีนในหน้า JSP | |
jsp:รวม | รวมไฟล์ JSP อื่นลงในไฟล์ปัจจุบันในระหว่างการประมวลผลคำขอ | |
jsp:setProperty | ตั้งค่าคุณสมบัติของถั่ว | |
jsp:getProperty | ดึงคุณสมบัติของบีนและแปลงให้เป็นสตริงสำหรับเอาต์พุต | |
jsp:ไปข้างหน้า | ส่งต่อคำขอไปยัง JSP หรือหน้าคงที่อื่น | |
jsp:ปลั๊กอิน | เปิดตัว Java ส่วนประกอบเช่นแอพเพล็ตหรือบีนใน JSP และสร้างแท็กโดยอัตโนมัติ | |
เจเอสพี:ร่างกาย | กำหนดองค์ประกอบ XML ที่สร้างแบบไดนามิกในระหว่างการประมวลผลคำขอ | |
jsp:ข้อความ | ข้อความเทมเพลต | ใช้เพื่อแทรกข้อความเทมเพลตลงในหน้า JSP ซึ่งมีเฉพาะข้อความและนิพจน์ EL |
jsp:param | ส่งผ่านพารามิเตอร์ภายในการดำเนินการ jsp:plugin เพื่อเพิ่มข้อมูลพิเศษ | |
jsp:แอตทริบิวต์ | กำหนดคุณลักษณะ XML ที่สร้างแบบไดนามิก | |
jsp:เอาท์พุท | ระบุการประกาศ XML หรือ DOCTYPE ที่จะใช้ในเอาต์พุต |
jsp:useBean
- ชื่อการดำเนินการนี้ใช้เมื่อเราต้องการใช้ bean ในหน้า JSP
- ด้วยแท็กนี้ เราสามารถเรียกใช้ bean ได้อย่างง่ายดาย
ไวยากรณ์ของ jsp: UseBean:
<jsp:useBean id="" class="" />
ที่นี่จะระบุตัวระบุสำหรับ bean นี้และคลาสคือเส้นทางแบบเต็มของคลาส bean
ตัวอย่าง:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action JSP1</title> </head> <body> <jsp:useBean id="name" class="demotest.DemoClass"> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 10: ในโค้ดด้านบนเราใช้ “bean id” และ “class path” ของ bean
jsp:รวม
- นอกจากนี้ยังใช้เพื่อแทรกไฟล์ jsp ลงในไฟล์อื่น เช่นเดียวกับการใส่ คำแนะนำ.
- มันถูกเพิ่มในระหว่างขั้นตอนการประมวลผลคำขอ
ไวยากรณ์ของ jsp:include
<jsp:include page="page URL" flush="true/false">
ตัวอย่าง:
Action_jsp2 (Code Line 10) เรากำลังรวมไฟล์ date.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Date Guru JSP</title> </head> <body> <jsp:include page="date.jsp" flush="true" /> </body> </html>
วันที่.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <p> Today's date: <%= {new java.util.Date()).toLocaleString()%> </p> </body> </html>
คำอธิบายของรหัส:
Action_jsp2.jsp
รหัสบรรทัด 10: ในไฟล์แรก เราจะรวมไฟล์ date.jsp ไว้ใน action_jsp2.jsp
วันที่.jsp:
รหัสบรรทัด 11: เรากำลังพิมพ์วันที่ของวันนี้ในโค้ดบรรทัด 11 ใน date.jsp
เมื่อคุณรันโค้ด ผลลัพธ์จะเป็นดังนี้:
Output:
- มันแสดงวันที่ของวันนี้พร้อมเวลาเนื่องจากไฟล์วันที่รวมอยู่ใน jsp หลัก
jsp:setProperty
- คุณสมบัติของการดำเนินการมาตรฐานใน JSP นี้ใช้เพื่อตั้งค่าคุณสมบัติของ bean
- เราจำเป็นต้องกำหนด bean ก่อนที่จะตั้งค่าคุณสมบัติ
ไวยากรณ์:
<jsp:setproperty name="" property="" >
ที่นี่ ชื่อจะกำหนดบีนที่ตั้งค่าคุณสมบัติและคุณสมบัติที่เราต้องการตั้งค่า นอกจากนี้ เราสามารถตั้งค่าแอตทริบิวต์ value และ param ได้ ที่นี่ value ไม่ใช่สิ่งบังคับ และจะกำหนดค่าที่กำหนดให้กับคุณสมบัติ ที่นี่ param คือชื่อของพารามิเตอร์คำขอที่ใช้ค่าที่สามารถดึงมาได้ ตัวอย่างของ setproperty จะแสดงด้านล่างโดยใช้ getproperty
jsp:getProperty
- คุณสมบัตินี้ใช้เพื่อรับคุณสมบัติของถั่ว
- มันจะแปลงเป็นสตริงและแทรกลงในเอาต์พุตในที่สุด
ไวยากรณ์:
<jsp:getAttribute name="" property="" >
ที่นี่ ชื่อของบีนที่ต้องการดึงคุณสมบัติและบีนควรได้รับการกำหนด แอตทริบิวต์คุณสมบัติคือชื่อของคุณสมบัติบีนที่ต้องการดึง
ตัวอย่างของ setProperty และ getProperty:
TestBean.java:
package demotest; import java.iO.Serializable; public class TestBean implements Serializable{ private String msg = "null"; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
Action_jsp3.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action 3</title> </head> <body> <jsp:useBean id="GuruTest" class="demotest.TestBean" /> <jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" /> <jsp:getProperty name="GuruTest" property="msg" /> </body> </html>
คำอธิบายของรหัส:
TestBean.java:
รหัสบรรทัด 5: TheTestBean กำลังใช้คลาสที่ทำให้เป็นอนุกรมได้ มันเป็นคลาส bean ที่มีตัวตั้งค่า getters ในโค้ด
รหัสบรรทัด 7: ที่นี่เรากำลังรับข้อความตัวแปรสตริงส่วนตัวเป็น "null"
รหัสบรรทัด 9-14: ที่นี่เรากำลังใช้ getters และ setters ของตัวแปร “msg”
Action_jsp3.jsp
รหัสบรรทัด 10: ที่นี่เราใช้แท็ก "useBean" โดยจะระบุ bean เช่น TestBean ซึ่งจะต้องใช้ในคลาส jsp นี้
รหัสบรรทัด 11: ที่นี่เรากำลังตั้งค่าสำหรับคุณสมบัติ msg สำหรับ bean TestBean เป็น "GuruTutorial"
CodeLine12: ที่นี่เมื่อใช้ getProperty เราได้รับค่าของคุณสมบัติ msg สำหรับ bean TestBean เช่น GuruTutorial ซึ่งมีอยู่ในเอาต์พุต
เมื่อคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้:
Output:
ในตัวอย่างนี้ การใช้ TestBean เรากำลังพยายามตั้งค่าคุณสมบัติ "gurutest" โดยใช้ setProperty และรับมูลค่าของคุณสมบัติโดยใช้ getProperty เป็น "GuruTutorial"
jsp:ไปข้างหน้า
ใช้เพื่อส่งต่อคำขอไปยัง jsp อื่นหรือเพจแบบคงที่ใดๆ
ที่นี่สามารถส่งต่อคำขอโดยไม่มีพารามิเตอร์หรือด้วยพารามิเตอร์
ไวยากรณ์:
<jsp:forward page="value">
ค่านี้แสดงถึงตำแหน่งที่ต้องส่งต่อคำขอ
ตัวอย่าง:
Action_jsp41.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action JSP1</title> </head> <body> <jsp:forward page="jsp_action_42.jsp" /> </body> </html>
Jsp_action_42.jsp
Guru Action JSP2</title> </head> <body> <a>This is after forward page</a> </body> </html>
คำอธิบายของรหัส
Action_jsp41.jsp
รหัสบรรทัด 10: ที่นี่เราใช้การส่งต่อ JSP Action เพื่อส่งต่อคำขอไปยังหน้าที่กล่าวถึงในแอตทริบิวต์ เช่น jsp_action_42.jsp
Jsp_action_42.jsp
รหัสบรรทัด 10: เมื่อเราเรียก action_jsp41.jsp คำขอจะถูกส่งต่อไปยังหน้านี้ และเราได้รับผลลัพธ์เป็น “นี่คือหลังจากหน้าส่งต่อ”
เมื่อเรารันโค้ดด้านบน เราจะได้ผลลัพธ์ดังต่อไปนี้
Output:
เราเรียก action_jsp41.jsp แต่คำขอได้รับการส่งต่อไปยัง jsp_action_42.jsp และเราได้รับเอาต์พุตจากหน้านั้นเป็น "นี่คือหลังจากหน้าส่งต่อ"
jsp:ปลั๊กอิน
- มันถูกใช้เพื่อแนะนำ Java ส่วนประกอบใน jsp คือส่วนประกอบ java สามารถเป็นได้ทั้งแอปเพล็ตหรือถั่ว
- มันตรวจพบเบราว์เซอร์และเพิ่ม หรือ แท็ก JSP ลงในไฟล์
ไวยากรณ์:
<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
- ที่นี่ประเภทระบุวัตถุหรือถั่ว
- รหัสระบุชื่อคลาสของแอปเพล็ตหรือถั่ว
- ฐานรหัสประกอบด้วย URL ฐานที่มีไฟล์ของคลาส
jsp:param
- นี่คือวัตถุลูกของวัตถุปลั๊กอินที่อธิบายไว้ข้างต้น
- ต้องมีการดำเนินการอย่างน้อย 1 รายการเพื่อระบุพารามิเตอร์เพิ่มเติม
ไวยากรณ์:
<jsp:params> <jsp:param name="val" value="val"/ > </jsp:params>
ตัวอย่างของปลั๊กอินและพารามิเตอร์
Action_jsp5.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action guru jsp5</title> </head> <body> <jsp:plugin type="bean" code="Student.class" codebase="demotest.Student"> <jsp:params> <jsp:param name="id" value="5" /> <jsp:param name="name" value="guru" /> </jsp:params> </jsp:plugin> </body> </html>
Student.java
package demotest; import java.io.Serializable; public class Student implements Serializable { public String getName () { return name; } public void setName (String name) { this.name = name; } public int getId() { return id; } public void setId (int id) { this.id = id; } private String name = "null"; private int id = 0; }
คำอธิบายของรหัส:
Action_jsp5.jsp
รหัสบรรทัด 10: ที่นี่เรากำลังรับ jsp: วัตถุปลั๊กอินที่เราใช้คุณลักษณะสามประการ
- พิมพ์ – ในกรณีนี้คือ bean
- รหัส- ชื่อของไฟล์
- Codebase – เส้นทางพร้อมชื่อแพ็คเกจ
รหัสบรรทัด 11-14: ที่นี่เราใช้ jsp: วัตถุ params ซึ่งมีวัตถุพารามิเตอร์ลูกที่มีแอตทริบิวต์ของชื่อและค่า และเรากำลังตั้งค่าของ id และชื่อในแอตทริบิวต์นี้
Student.java
รหัส 7-17: เรากำลังใช้ getters และ setters สำหรับ id และชื่อตัวแปร
รหัส 19-20: เรากำลังเริ่มต้นตัวแปร id และชื่อ
ที่นี่เราจะได้ผลลัพธ์ในกรณีที่จะใช้ค่าพารามิเตอร์ที่ตั้งไว้ใน Student Bean ในกรณีนี้ เราจะไม่มีเอาต์พุตใดๆ เนื่องจากเราเพิ่งตั้งค่าและรับค่าของพารามิเตอร์แต่ไม่ได้พิมพ์ไปที่ใดเลย
เจเอสพี:ร่างกาย
- แท็กนี้ใช้เพื่อกำหนด XML แบบไดนามิก เช่น องค์ประกอบ สามารถสร้างในช่วงเวลาคำขอมากกว่าเวลารวบรวม
- จริงๆ แล้วกำหนด XML ซึ่งสร้างเนื้อหาองค์ประกอบแบบไดนามิก
ไวยากรณ์:
<jsp:body></jsp:body>
ที่นี่เราเขียนแท็กเนื้อหา XML ภายในแท็กนี้
jsp:แอตทริบิวต์
- แท็กนี้ใช้เพื่อกำหนด XML แบบไดนามิก กล่าวคือ องค์ประกอบสามารถสร้างขึ้นในช่วงเวลาที่ร้องขอมากกว่าเวลาในการรวบรวม
- จริงๆ แล้วกำหนดแอตทริบิวต์ของ XML ซึ่งจะถูกสร้างขึ้นแบบไดนามิก
ไวยากรณ์:
<jsp:attribute></jsp:attribute>
ที่นี่เราเขียนแท็กแอตทริบิวต์ของ XML
ตัวอย่างเนื้อหาและคุณลักษณะ:
Action_jsp6.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action Guru JSP6</title> </head> <body> <jsp:element name="GuruXMLElement"> <jsp:attribute name="GuruXMLattribute"> Value </jsp:attribute> <jsp:body>Guru XML</jsp:body> </jsp:element> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 10: ที่นี่เรากำลังกำหนดองค์ประกอบซึ่งสร้างขึ้นแบบไดนามิกเป็น XMLและชื่อของมันจะเป็น GuruXMLElement
รหัสบรรทัด 11-13: ที่นี่เรากำลังกำหนดแอตทริบิวต์ซึ่งจะเป็นแอตทริบิวต์ XML ของ XML ที่สร้างขึ้นแบบไดนามิก
รหัสบรรทัด 14: ที่นี่เรามีการดำเนินการกับเนื้อหาโดยที่เรากำลังเขียนเนื้อหา XML ซึ่งจะถูกสร้างขึ้นใน XML แบบไดนามิก
เมื่อคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ต่อไปนี้:
Output:
ที่นี่เราได้รับผลลัพธ์จากแท็กเนื้อหาของ XML ที่สร้างขึ้น
jsp:ข้อความ
- ใช้สำหรับเทมเพลตข้อความในหน้า JSP
- เนื้อความไม่มีองค์ประกอบอื่นๆ และมีเพียงข้อความและนิพจน์ EL เท่านั้น
ไวยากรณ์:
<jsp:text>template text</jsp:text>
ข้อความเทมเพลตในที่นี้อ้างอิงถึงเฉพาะข้อความเทมเพลต (ซึ่งอาจเป็นข้อความทั่วไปใดๆ ที่ต้องพิมพ์บน jsp ) หรือข้อความอื่นๆ การแสดงออกของเอล.
ตัวอย่าง:
Action_jsp7.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action JSP7</title> </head> <body> <jsp:text>Guru Template Text</jsp:text> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 10: ที่นี่เรากำลังนำวัตถุข้อความมาพิมพ์ข้อความเทมเพลต
เมื่อคุณรันโค้ดข้างต้น คุณจะได้รับผลลัพธ์ดังต่อไปนี้
Output:
เราได้รับข้อความเทมเพลต Guru ซึ่งวางอยู่ภายในวัตถุการดำเนินการข้อความ
jsp:เอาท์พุท
- ระบุการประกาศ XML หรือการประกาศ DOCTYPE ของ jsp
- การประกาศ XML และ DOCTYPE ได้รับการประกาศโดยเอาต์พุต
ไวยากรณ์:
<jsp:output doctype-root-element="" doctype-system="">
ที่นี่ doctype-root-element ระบุองค์ประกอบรากของเอกสาร XML ใน DOCTYPE Doctype-system ระบุ doctype ที่สร้างขึ้นในเอาต์พุตและให้ค่าตัวอักษรของระบบ
ตัวอย่าง:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Action Guru JSP8</title> </head> <body> <jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/> </body> </html>
คำอธิบายของรหัส:
รหัสบรรทัด 10: ที่นี่เรากำลังใช้ออบเจ็กต์การดำเนินการเอาต์พุตเพื่อสร้าง DOCTYPE และภายในจะถูกสร้างขึ้นในรูปแบบนี้:
จะไม่มีเอาต์พุตใดๆ สำหรับสิ่งนี้ เนื่องจากสิ่งนี้จะถูกสร้างขึ้นภายใน