บทช่วยสอน JSP การแสดงออกภาษา ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ ไวยากรณ์ง่าย,EL ประกอบการต้นแบบ,ฟังก์ชั่น JSP EL,JSP EL วัตถุโดยปริยาย,วัตถุ pageContext,ขอบเขตวัตถุ,พระรามและ paramValues วัตถุ,วัตถุหัวและ headerValues,
JSP การแสดงออกภาษา (EL) เพื่อให้เข้าถึงข้อมูลที่เก็บไว้ใน JavaBean จะกลายเป็นเรื่องง่ายมาก JSP EL ก็จะสามารถใช้ในการสร้างการแสดงออกทางคณิตศาสตร์นอกจากนี้ยังสามารถใช้ในการสร้างการแสดงออกเชิงตรรกะ ในนิพจน์ JSP EL สามารถใช้จำนวนเต็มจำนวนจุดลอยตัวสตริงคงจริงเท็จมีเป็นโมฆะ
โดยปกติเมื่อคุณจะต้องระบุมูลค่าทรัพย์สินเมื่อแท็ก JSP เพียงแค่ใช้สตริงเพื่อ:
<jsp:setProperty name="box" property="perimeter" value="100"/>
JSP EL แสดงออกช่วยให้คุณสามารถระบุค่าทรัพย์สิน ไวยากรณ์แสดงออกง่าย ๆ ดังนี้
${expr}
ขัดแย้ง expr หมายถึงการแสดงออก ในผู้ประกอบการทั่วไป JSP EL คือ "." และ "[]." เหล่านี้สองผู้ประกอบการช่วยให้คุณสามารถเข้าถึงความหลากหลายของการฝัง JSP JavaBean คุณสมบัติผ่านวัตถุ
ตัวอย่างข้างต้น <JSP: setProperty> แท็กสามารถเขียนใหม่โดยใช้ภาษาการแสดงออกดังต่อไปนี้:
<jsp:setProperty name="box" property="perimeter" value="${2*box.width+2*box.height}"/>
เมื่อคอมไพเลอร์ JSP ที่จะเห็น "$ {}" หลังจากที่รูปแบบนั้นมันสร้างรหัสในการประเมินการแสดงออกและสร้างทดแทนที่จะเปลี่ยนค่าของการแสดงออกในสถานที่
นอกจากนี้คุณยังสามารถใช้ภาษาแสดงออกในต้นแบบแท็บข้อความ ตัวอย่างเช่น <JSP: ข้อความ> เพียงแท็กแทรกลงในข้อความของร่างกาย JSP เอาท์พุท:
<jsp:text> <h1>Hello JSP!</h1> </jsp:text>
ขณะนี้ใน: ใช้การแสดงออก <ข้อความ JSP> แท็กในร่างกายเช่นนี้
<jsp:text> Box Perimeter is: ${2*box.width + 2*box.height} </jsp:text>
การแสดงออกในวงเล็บ EL สามารถนำมาใช้ในการจัดระเบียบย่อยแสดงออก ตัวอย่างเช่น $ {(1 + 2) * 3 เท่ากับ 9} แต่ $ {1 + (2 * 3)} = 7
ต้องการปิดใช้งานการประเมินผลของการแสดงออก EL แล้วคุณจำเป็นต้องใช้หน้าการสั่ง isELIgnored แอตทริบิวต์จริง:
<%@ page isELIgnored ="true|false" %>
ดังนั้นการแสดงออก EL จะถูกละเลย ถ้าตั้งค่าเป็นเท็จภาชนะจะถูกคำนวณนิพจน์ EL
การสนับสนุนการแสดงออก EL ให้บริการโดยส่วนใหญ่ Java ทางคณิตศาสตร์และตรรกะผู้ประกอบการ:
ผู้ประกอบการ | ลักษณะ |
---|---|
. | Bean เข้าถึงทรัพย์สินหรือรายการการทำแผนที่ |
[] | เข้าถึงอาร์เรย์หรือรายการขององค์ประกอบ |
() | จัดให้มีการย่อยแสดงออกถึงความเปลี่ยนลำดับความสำคัญ |
+ | บวก |
- | บันทึกหรือเชิงลบ |
* * * * | คูณ |
/ div หรือ | ยกเว้น |
% หรือ mod | modulo |
== หรือ EQ | ทดสอบเพื่อความเท่าเทียมกัน |
! = หรือภาคตะวันออกเฉียงเหนือ | ทดสอบว่าไม่เท่ากัน |
<หรือ LT | ทดสอบว่าน้อยกว่า |
> หรือ GT | การทดสอบมีค่ามากกว่า |
<= หรือ le | ทดสอบว่าน้อยกว่าหรือเท่ากับ |
> = หรือ GE | ทดสอบว่ามากกว่าหรือเท่ากับ |
&& Or และ | ตรรกะและการทดสอบ |
|| หรือหรือ | ตรรกะการทดสอบหรือ |
! หรือไม่ | ทดสอบเมื่อตะกี้ |
ว่างเปล่า | ทดสอบว่า null |
ฟังก์ชั่น JSP EL ช่วยให้คุณสามารถที่จะใช้ในการแสดงออก ฟังก์ชั่นเหล่านี้จะต้องกำหนดไว้ในห้องสมุดแท็กที่กำหนดเอง ใช้ไวยากรณ์ฟังก์ชั่นดังต่อไปนี้:
${ns:func(param1, param2, th.)}
NS หมายถึง namespace (namespace) func เป็นชื่อของฟังก์ชั่นที่ param1 หมายถึงอาร์กิวเมนต์แรก param2 หมายถึงอาร์กิวเมนต์ที่สองและอื่น ๆ ตัวอย่างเช่นมีฟังก์ชั่น Fn: ความยาวที่กำหนดไว้ในห้องสมุด JSTL สามารถเป็นเช่นนี้เพื่อให้ได้ความยาวของสตริง:
${fn:length("Get my length")}
ที่จะใช้ฟังก์ชั่นใด ๆ ของห้องสมุดแท็กที่คุณจะต้องห้องสมุดเหล่านี้ติดตั้งบนเซิร์ฟเวอร์และจากนั้นใช้ <taglib> tag มีห้องสมุดในไฟล์ JSP ไปที่
รองรับ JSP EL วัตถุโดยปริยายมีการระบุไว้ในตารางต่อไปนี้:
วัตถุที่ซ่อนอยู่ | ลักษณะ |
---|---|
PageScope | หน้าขอบเขต |
requestScope | ขอบเขตการร้องขอ |
sessionScope | ขอบเขตเซสชั่น |
applicationScope | ขอบเขตการประยุกต์ใช้ |
พระราม | คำขอสตริงพารามิเตอร์วัตถุ |
paramValues | พารามิเตอร์ร้องขอวัตถุคอลเลกชันสตริง |
ส่วนหัว | สตริงหัว HTTP |
headerValues | หัว HTTP, คอลเลกชันสตริง |
initParam | พารามิเตอร์บริบทเริ่มต้น |
คุกกี้ | ค่าคุกกี้ |
pageContext | หน้า pageContext ปัจจุบัน |
คุณสามารถใช้วัตถุเหล่านี้ในการแสดงออกเช่นการใช้ตัวแปรเดียวกัน ถัดไปจะให้เป็นตัวอย่างเพื่อให้เข้าใจแนวคิดนี้
วัตถุ pageContext คือการอ้างอิงไปยังวัตถุ JSP pageContext โดยวัตถุ pageContext คุณสามารถเข้าถึงคำขอวัตถุ ตัวอย่างเช่นในการเข้าถึงวัตถุคำขอผ่านในสตริงการสืบค้นเช่นนี้
${pageContext.request.queryString}
PageScope, requestScope, sessionScope ตัวแปร applicationScope ใช้ในการเข้าถึงข้อมูลที่เก็บไว้ในแต่ละระดับการกำหนดขอบเขตตัวแปร
ตัวอย่างเช่นถ้าคุณต้องการเข้าถึงกล่อง applicationScope ชั้นตัวแปรอย่างชัดเจนที่จะสามารถเข้าถึง: applicationScope.box
พระรามและ paramValues วัตถุถูกใช้ในการเข้าถึงค่าพารามิเตอร์โดยใช้วิธีการและวิธีการ request.getParameterValues request.getParameter
ยกตัวอย่างเช่นการเข้าถึงพารามิเตอร์การสั่งซื้อที่มีชื่อคุณสามารถใช้สำนวนนี้: $ {} param.order หรือ $ {พระราม [ "สั่ง"]}
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าการเข้าถึงพารามิเตอร์คำขอชื่อผู้ใช้:
<%@ page import="java.io.*,java.util.*" %> <% String title = "Accessing Request Param"; %> <html> <head> <title><% out.print(title); %></title> </head> <body> <center> <h1><% out.print(title); %></h1> </center> <div align="center"> <p>${param["username"]}</p> </div> </body> </html>
วัตถุพระรามส่งกลับสายเดียว, paramValues วัตถุจะถูกส่งกลับอาร์เรย์สตริง
หัวและวัตถุ headerValues ใช้ในการเข้าถึงข้อมูลส่วนหัวโดยใช้วิธีการและวิธีการที่ request.getHeaders request.getHeader
ยกตัวอย่างเช่นในการเข้าถึงข้อมูลที่เรียกว่าหัว user-agent คุณสามารถใช้สำนวนนี้: $ {header.user ตัวแทน} หรือ $ {หัว [ "user-agent"]}
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าการเข้าถึงหัว user-agent:
<%@ page import="java.io.*,java.util.*" %> <% String title = "User Agent Example"; %> <html> <head> <title><% out.print(title); %></title> </head> <body> <center> <h1><% out.print(title); %></h1> </center> <div align="center"> <p>${header["user-agent"]}</p> </div> </body> </html>
ผลมีดังนี้
วัตถุหัวกลับค่าเดียวในขณะ headerValues ส่งกลับอาร์เรย์ของสตริง