Как отформатировать это число в JSTL? - PullRequest
0 голосов
/ 09 февраля 2012

Я бы хотел отформатировать число в JSTL так, чтобы оно выглядело так:

<c:set var="num" value="12345678000199"/>
<fmt:formatNumber type="number" value="${num}" pattern=?/>
<!-- desired output: 12.345.678/0001-99 (Brazilian CNPJ [companies' IRS ID])-->

Заранее спасибо !!

Ответы [ 3 ]

2 голосов
/ 09 февраля 2012

Это невозможно ни со стандартными тегами JSTL, ни со стандартным API NumberFormat, который используется под крышками.Для этого вам нужно создать пользовательский тег JSP или EL .Вы можете выполнить эту работу с помощью простых String методов манипуляции или даже (ab) использовать Swing's MaskFormatter:

String cnpj = "12345678000199";
MaskFormatter mf = new MaskFormatter("##.###.###/####-##");
mf.setValueContainsLiteralCharacters(false);
System.out.println(mf.valueToString(cnpj)); // 12.345.678/0001-99

С помощью функции EL вы можетев конечном итоге получается так:

<c:out value="${util:formatCnpj(user.cnpj)}" />

Подробнее о создании функции EL см. также нижнюю часть Скрытые функции JSP / Servlet .

0 голосов
/ 15 марта 2012

Используя предоставленный вами код JSTL и желаемый результат, шаблон для форматирования это "###. ###. ### / #### '-' ##" Это предполагает, что у вас могут отсутствовать ведущие нули. Если это не так, шаблон может быть "000.000.000 / 0000 '-' 00"

Убедитесь, что вы вставляете одинарные кавычки, поскольку они выходят за пределы тире, обычно это специальный символ (печатается - только для отрицательных чисел.

Источник: http://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htm

0 голосов
/ 09 февраля 2012

Это не число.Это строка, содержащая цифры.

Если вы действительно храните такую ​​информацию как число, вам придется самостоятельно написать метод форматирования.Вы можете использовать этот метод форматирования из JSP, разделив его как JSP EL-функция .

Обратите внимание, что если строка может иметь начальный ноль, использование числа для хранения это четхудшая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...