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

การใช้งาน <c:url> tag ใน JSP

Tag <c:url> (JSTL Core) สร้าง URL string พร้อม encoding และ session tracking (URL rewriting) อัตโนมัติ

Attributes

AttributeคำอธิบายRequiredDefault
valueBase URLYes-
context/context-name สำหรับ webapp อื่นNoCurrent app
varVariable name เก็บ URL ผลลัพธ์NoPrint to page
scopeScope ของ var (page/request/session/application)Nopage

ตัวอย่าง

<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<html>
<body>
    <!-- พิมพ์ URL โดยตรง -->
    <a href="<c:url value='/jsp/index.htm'/>">Go to Index</a>
    <br/>
    
    <!-- เก็บใน variable -->
    <c:url value="/search" var="searchUrl">
        <c:param name="q" value="java"/>
        <c:param name="page" value="1"/>
    </c:url>
    <a href="${searchUrl}">Search Java</a>
</body>
</html>

ผลลัพธ์ (สมมติ context path = /myapp, มี session)

<a href="/myapp/jsp/index.htm;jsessionid=ABC123">Go to Index</a>
<a href="/myapp/search?q=java&page=1;jsessionid=ABC123">Search Java</a>

ข้อได้เปรียบเหนือ response.encodeURL()

    <1>จัดการพารามิเตอร์ผ่าน <c:param> อัตโนมัติ (encoding, escaping)
  • รองรับ context attribute สำหรับ cross-context links
  • เก็บใน variable ใช้ซ้ำได้ (var + scope)
  • Syntax ใกล้เคียง HTML อ่านง่าย

เมื่อไหร่ควรใช้

  • สร้าง link ทุกประเภทใน JSP (best practice)
  • ต้องการ URL rewriting สำหรับ session tracking
  • สร้าง URL พร้อม query parameters หลายตัว