แท็ก <fmt:parseNumber> ใช้สำหรับแปลงข้อความที่เป็น ตัวเลข, เปอร์เซ็นต์ และ สกุลเงิน ให้กลายเป็นค่าตัวเลขที่ใช้งานได้ใน JSP
แอตทริบิวต์ของ <fmt:parseNumber>
ตารางด้านล่างแสดงแอตทริบิวต์ทั้งหมดที่รองรับ:
| แอตทริบิวต์ | คำอธิบาย | จำเป็น | ค่าเริ่มต้น |
|---|---|---|---|
| value | ค่าตัวเลขที่ต้องการแปลง (อ่านจาก body หากไม่ระบุ) | ไม่ | Body |
| type | ประเภทข้อมูล: NUMBER, CURRENCY, หรือ PERCENT | ไม่ | number |
| parseLocale | Locale ที่ใช้ในการแปลงตัวเลข | ไม่ | Default locale |
| integerOnly | แปลงเป็นจำนวนเต็ม (true) หรือทศนิยม (false) | ไม่ | false |
| pattern | รูปแบบการแปลงแบบกำหนดเอง | ไม่ | None |
| timeZone | โซนเวลา (ไม่เกี่ยวข้องกับการแปลงตัวเลขโดยตรง) | ไม่ | Default time zone |
| var | ชื่อตัวแปรสำหรับเก็บค่าที่แปลงแล้ว | ไม่ | Print to page |
| scope | ขอบเขตของตัวแปร (page, request, session, application) | ไม่ | page |
แอตทริบิวต์ pattern ทำงานคล้ายกับ <fmt:formatNumber> แต่ในกรณีการแปลง (parsing) จะบอก parser ว่าคาดหวังรูปแบบไหน
ตัวอย่างการใช้งาน
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="https://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:parseNumber Tag - แปลงเปอร์เซ็นต์</title>
</head>
<body>
<h3>การแปลงเปอร์เซ็นต์:</h3>
<c:set var="balance" value="125.350%" />
<fmt:parseNumber var="i" type="PERCENT" value="${balance}" />
<p>ค่าที่แปลงแล้ว (1) : <c:out value="${i}" /></p>
<fmt:parseNumber var="i" integerOnly="true" type="PERCENT" value="${balance}" />
<p>ค่าที่แปลงแล้ว (2) : <c:out value="${i}" /></p>
</body>
</html>
ผลลัพธ์
การแปลงเปอร์เซ็นต์: ค่าที่แปลงแล้ว (1) : 1.2535 ค่าที่แปลงแล้ว (2) : 1
หมายเหตุ: ค่าเปอร์เซ็นต์ "125.350%" จะถูกแปลงเป็น 1.2535 (หาร 100) และเมื่อใช้ integerOnly="true" จะได้ 1