2013-02-26 17 views
6

Tôi đang cố gắng để có được số định dạng theo định dạng cụ thể này:Có thể JSTL fmt: formatNumber được sử dụng để có được kết quả này: "1 234,56"?

"1 234,56"

Vì vậy, hai số thập phân, cách nhau bằng một dấu chấm. Và nhóm hàng ngàn với một char không gian (tùy chọn một trích dẫn duy nhất). Giá trị đầu vào sẽ không bao giờ lớn hơn 9999,99.

Tôi đã thử sử dụng các mẫu cho điều này và thậm chí là chơi với các ngôn ngữ, nhưng không có kết quả.

+0

Từ kiến ​​thức của tôi, bạn không thể chỉ định mẫu in một khoảng trắng sau mỗi ký tự thứ 3. Tôi tìm thấy một cái gì đó tương tự trên CodeRanch nhưng nó không phải là rất đẹp: http://www.coderanch.com/t/292958/JSP/java/fmt-formatNumber-grouping-separator. Có lẽ nó giúp –

Trả lời

9

Đây là một cách.

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 
<c:set var="val" value="9999.99" /> 
<fmt:formatNumber value="${val}" pattern="#,###.##" var="pat" /> 
${fn:replace(pat, ",", " ")} 
+0

Vì vậy, thao tác chuỗi cơ bản có thể được sử dụng trong JSTL, tôi đã không nhận thức được điều đó. Tôi đã nhận được nó để làm việc trong trường hợp sử dụng của tôi. Cảm ơn!! Trong trường hợp nó giúp bất cứ ai, những gì tôi đã làm cuối cùng là nhiều hơn hoặc ít hơn như thế này: $ {fn: thay thế (vỗ, ",", ".")} Tôi đã sử dụng dấu nháy đơn làm dấu tách hàng nghìn ... Chỉnh sửa: Dang, tôi nghĩ rằng các khối mã trong nhận xét là có thể! –

Các vấn đề liên quan