Bài đăng nổi bật


Thẻ điều khiển
JSTL (Java Standard Tag Library) là bộ thư viện thẻ chuẩn được sử dụng để tăng cường cho sức mạnh của lập trình JSP.
Trong số các bộ thư viện thẻ được giới thiệu, các thẻ điều khiển và  định dạng được sử dụng nhiều nhất. Vì vậy trong phần này, bạn sẽ được tìm hiểu về các thẻ làm việc trong hai phần này.

Thẻ điều khiển
Khai báo thư viện thẻ lõi:
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
Các thẻ điều khiển thuộc thư viện thẻ lõi gồm
<c:forEach> lệnh lặp trên Map, Collection và Array
<c:if> lệnh if
<c:choose>...<c:when>: lệnh if...elseif...else

Thẻ <c:if>
Thực thi phần thân của thẻ nếu giá trị của thuộc tính test có giá trị true 
<c:if test=”điều kiện”>
     Thân thẻ sẽ được thực hiện nếu điều kiện ở thuộc tính @test đúng
</c:if>
  dụ:  nếu  trong  phạm  vi  session    tồn  tại  thuộc  tính    tên    user  thì  hiển  thị  dòng  <h1>Welcome <tên của user trong session></h1>

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <c:if test="${!empty sessionScope.user}">
          <h1>Welcome ${sessionScope.user.fullName}</h1>
        </c:if>
    </body>
</html>

Thẻ <c:choose>
Bao  bọc các điều  kiện  loại  trừ  lẫn nhau. Tương th   if…else if….else trong java. Nếu điều kiện của thuộc tính @test của thẻ <c:when> nào đúng thì thân của thẻ đó được thực hiện. Ngoài ra thân của <c:otherwise> sẽ được thực hiện.
Cú pháp

<c:choose>
    <c:when test=”điều kiện 1”></c:when>
    <c:when test=” điều kiện N”></c:when>
   
     <c:otherwise> </c:otherwise>
</c:choose>

Ví dụ: hiển thị lời chào tùy thuộc vào thời điểm truy xuất trong ngày

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<jsp:useBean id="date" class="java.util.Date" scope="page"/>

<c:choose>
    <c:when test="${date.hours < 12}">
        <c:set var="greeting" value="Good morning !"/>
    </c:when>
    <c:when test="${date.hours > 17}">
        <c:set var="greeting" value="Good evening !"/>
    </c:when>
    <c:otherwise>
        <c:set var="greeting" value="Hello"/>
    </c:otherwise>
</c:choose>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>${greeting}</h1> 
    </body>
</html>

Thẻ <c:forEach>
Bạn    thể  sử  dụng hành động <c:forEach> để  lặp  qua  một  cấu  trúc  dữ  liệu,  chẳng  hạn như một mảng, Map, hoặc tập hợp nếu bạn chỉ định cấu trúc dữ liệu với thuộc tính items.
Bạn cũng có thể sử dụng <c:forEach> để lặp qua các giá trị số nguyên nếu bạn không chỉ định thuộc tính items.

Cách 1: lặp theo cấu trúc dữ liệu

<c:forEach items [begin] [end] [step] [var] [varStatus]>
    body content
</c:forEach>

Cách 2: duyệt các giá trị số nguyên

<c:forEach begin end [step] [var] [varStatus]>
    body content
</c:forEach>

Ý nghĩa các thuộc tính:


Ví dụ: duyệt  tập hợp items, mỗi item sẽ truy xuất và hiển thị thuộc tính name và price.

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>
<html>
<head>
    <title>Học JSTL</title>
</head>
<body>
  
<c:forEach var="item" items="${items}">
<ul>
  <li>${item.name}</li>
  <li>${item.price}</li>
</ul>
</c:forEach>
 </body>
</html>

Thẻ định dạng 

Với JSTL bạn có thể định dạng ngay và số rất dễ dàng trên JSP nhờ bộ thẻ định dạng. Bạn
cần khai báo thư viện thẻ định dạng trước khi sử dụng thẻ 
Khai báo: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
Thẻ định dạng ngày: <f:formatDate> 
 Thẻ định dạng số: <f:formatNumber> 

Ví dụ 1: định dạng theo miền địa phương 

<fmt:setLocale value='en-US'/> <!--chọn ngôn ngữ--> 
English: <fmt:formatNumber value='1255.23'/> 
<fmt:setLocale value='vi-VN'/> 
Việt Nam: <fmt:formatNumber value='1255.23'/> 

Kết quả: English: 1,255.23 Việt Nam: 1.255,23

Ví dụ 2: các kiểu định dạng 

<%@ page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt" %>  
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Học JSTL</title> 
</head> 
<body> 

<h1>Định dạng số và ngày</h1> 
<jsp:useBean id="now" class="java.util.Date"/> 

<ul> 
  <li>Ngày: <f:formatDate value="${now}" pattern="dd-MM-yyyy"/></li> 
  <li>Số lẻ: <f:formatNumber value="${12.5}" minFractionDigits="2"/></li> 
  <li>Tiền tệ: <f:formatNumber value="${123}" type="currency"/></li> 
  <li>Phần trăm: <f:formatNumber value="${0.23}" type="percent"/></li> 
</ul> 

</body> 
</html> 

Trao đổi và chia sẻ tại Facebook: CodeLean Community

Post a Comment

Mới hơn Cũ hơn