Latest web development tutorials

JSP การแสดงออกภาษา

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 ประกอบการต้นแบบ

การสนับสนุนการแสดงออก EL ให้บริการโดยส่วนใหญ่ Java ทางคณิตศาสตร์และตรรกะผู้ประกอบการ:

ผู้ประกอบการ ลักษณะ
. Bean เข้าถึงทรัพย์สินหรือรายการการทำแผนที่
[] เข้าถึงอาร์เรย์หรือรายการขององค์ประกอบ
() จัดให้มีการย่อยแสดงออกถึงความเปลี่ยนลำดับความสำคัญ
+ บวก
- บันทึกหรือเชิงลบ
* * * * คูณ
/ div หรือ ยกเว้น
% หรือ mod modulo
== หรือ EQ ทดสอบเพื่อความเท่าเทียมกัน
! = หรือภาคตะวันออกเฉียงเหนือ ทดสอบว่าไม่เท่ากัน
<หรือ LT ทดสอบว่าน้อยกว่า
> หรือ GT การทดสอบมีค่ามากกว่า
<= หรือ le ทดสอบว่าน้อยกว่าหรือเท่ากับ
> = หรือ GE ทดสอบว่ามากกว่าหรือเท่ากับ
&& Or และ ตรรกะและการทดสอบ
|| หรือหรือ ตรรกะการทดสอบหรือ
! หรือไม่ ทดสอบเมื่อตะกี้
ว่างเปล่า ทดสอบว่า null

ฟังก์ชั่น JSP EL

ฟังก์ชั่น JSP EL ช่วยให้คุณสามารถที่จะใช้ในการแสดงออก ฟังก์ชั่นเหล่านี้จะต้องกำหนดไว้ในห้องสมุดแท็กที่กำหนดเอง ใช้ไวยากรณ์ฟังก์ชั่นดังต่อไปนี้:

${ns:func(param1, param2, ...)}

NS หมายถึง namespace (namespace) func เป็นชื่อของฟังก์ชั่นที่ param1 หมายถึงอาร์กิวเมนต์แรก param2 หมายถึงอาร์กิวเมนต์ที่สองและอื่น ๆ ตัวอย่างเช่นมีฟังก์ชั่น Fn: ความยาวที่กำหนดไว้ในห้องสมุด JSTL สามารถเป็นเช่นนี้เพื่อให้ได้ความยาวของสตริง:

${fn:length("Get my length")}

ที่จะใช้ฟังก์ชั่นใด ๆ ของห้องสมุดแท็กที่คุณจะต้องห้องสมุดเหล่านี้ติดตั้งบนเซิร์ฟเวอร์และจากนั้นใช้ <taglib> tag มีห้องสมุดในไฟล์ JSP ไปที่


JSP EL วัตถุโดยปริยาย

รองรับ JSP EL วัตถุโดยปริยายมีการระบุไว้ในตารางต่อไปนี้:

วัตถุที่ซ่อนอยู่ ลักษณะ
PageScope หน้าขอบเขต
requestScope ขอบเขตการร้องขอ
sessionScope ขอบเขตเซสชั่น
applicationScope ขอบเขตการประยุกต์ใช้
พระราม คำขอสตริงพารามิเตอร์วัตถุ
paramValues พารามิเตอร์ร้องขอวัตถุคอลเลกชันสตริง
ส่วนหัว สตริงหัว HTTP
headerValues หัว HTTP, คอลเลกชันสตริง
initParam พารามิเตอร์บริบทเริ่มต้น
คุกกี้ ค่าคุกกี้
pageContext หน้า pageContext ปัจจุบัน

คุณสามารถใช้วัตถุเหล่านี้ในการแสดงออกเช่นการใช้ตัวแปรเดียวกัน ถัดไปจะให้เป็นตัวอย่างเพื่อให้เข้าใจแนวคิดนี้


วัตถุ pageContext

วัตถุ pageContext คือการอ้างอิงไปยังวัตถุ JSP pageContext โดยวัตถุ pageContext คุณสามารถเข้าถึงคำขอวัตถุ ตัวอย่างเช่นในการเข้าถึงวัตถุคำขอผ่านในสตริงการสืบค้นเช่นนี้

${pageContext.request.queryString}

ขอบเขตวัตถุ

PageScope, requestScope, sessionScope ตัวแปร applicationScope ใช้ในการเข้าถึงข้อมูลที่เก็บไว้ในแต่ละระดับการกำหนดขอบเขตตัวแปร

ตัวอย่างเช่นถ้าคุณต้องการเข้าถึงกล่อง applicationScope ชั้นตัวแปรอย่างชัดเจนที่จะสามารถเข้าถึง: applicationScope.box


พระรามและ paramValues ​​วัตถุ

พระรามและ 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

หัวและวัตถุ 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>

ผลมีดังนี้

JSP แสดงออกภาษา

วัตถุหัวกลับค่าเดียวในขณะ headerValues ​​ส่งกลับอาร์เรย์ของสตริง