แท็กการดำเนินการ 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

เมื่อคุณรันโค้ด ผลลัพธ์จะเป็นดังนี้:

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 ซึ่งมีอยู่ในเอาต์พุต

เมื่อคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้:

jsp:getProperty

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 คำขอจะถูกส่งต่อไปยังหน้านี้ และเราได้รับผลลัพธ์เป็น “นี่คือหลังจากหน้าส่งต่อ”

เมื่อเรารันโค้ดด้านบน เราจะได้ผลลัพธ์ดังต่อไปนี้

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 แบบไดนามิก

เมื่อคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ต่อไปนี้:

jsp:แอตทริบิวต์

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: ที่นี่เรากำลังนำวัตถุข้อความมาพิมพ์ข้อความเทมเพลต

เมื่อคุณรันโค้ดข้างต้น คุณจะได้รับผลลัพธ์ดังต่อไปนี้

jsp:ข้อความ

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 และภายในจะถูกสร้างขึ้นในรูปแบบนี้:

จะไม่มีเอาต์พุตใดๆ สำหรับสิ่งนี้ เนื่องจากสิ่งนี้จะถูกสร้างขึ้นภายใน