После перехода на JSF Mojarra 2.2.5 я получаю следующее исключение при использовании значения функции Omnifaces elNumber. Это происходит только в составном компоненте. Нормальный Facelet работает нормально.Использование функций Omnifaces EL в составном компоненте с Mojarra 2.2.5
javax.el.ELException: Функция 'от: FormatNumber' не найден
это мой составной компонент:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:jsf="http://xmlns.jcp.org/jsf"
xmlns:cc="http://xmlns.jcp.org/jsf/composite"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:of="http://omnifaces.org/functions">
<cc:interface>
<cc:attribute name="cart" required="true" type="org.ead.eeb.order.ShoppingCart" />
<cc:attribute name="allowCouponRemove" required="true" type="java.lang.Boolean" />
<cc:attribute name="removeCouponBean" type="java.lang.Object" />
<cc:attribute name="removeCouponAction" type="java.lang.String" />
<cc:attribute name="removeCouponProperty" type="java.lang.String" />
</cc:interface>
<cc:implementation>
<h4>Übersicht</h4>
<table class="table">
<tbody>
<c:forEach items="#{cc.attrs.cart.items}" var="item">
<tr>
<td><abbr title="#{item.description}">#{item.name}</abbr></td>
<td class="text-right">#{of:formatNumber(item.totalAmount, '#0.00')} €</td>
</tr>
</c:forEach>
<tr>
<td>Mehrwertsteuer (#{cc.attrs.cart.taxRatePercentage} %)</td>
<td class="text-right">#{of:formatNumber(cc.attrs.cart.totalTax, '#0.00')} €</td>
</tr>
</tbody>
<tfoot>
<tr class="active">
<td><strong>Gesamtbetrag</strong></td>
<td class="text-right"><strong>#{of:formatNumber(cc.attrs.cart.totalOrderAmount, '#0.00')} €</strong></td>
</tr>
</tfoot>
</table>
...
</cc:implementation>
заранее спасибо за вашу помощь :)
Редактировать: проблема возникает, если я использую значение от cc.attrs.*
. Если я использую значение непосредственно как атрибут, все работает хорошо. Есть идеи?
Edit2: Обойти можно следующим кодом
<c:set var="test" value="#{cc.attrs.value}" />
#{of:formatNumber(test, '#0.00')}
но это довольно некрасиво. Я не могу найти свою ошибку.
Напоминает мне о старой ошибке Моджарры. Что произойдет, если вы поместите 'xmlns: of =" http://omnifaces.org/functions "' inside ''? –
BalusC
Да, я нашел старые темы об этом. Но размещение объявления пространства имен в теге реализации не имеет значения. – J4y
Странно. Позвольте мне попробовать это на 2.2.5 ... – BalusC