#jsf #trim #trinidad
#jsf #обрезка #тринидад
Вопрос:
Когда пользователь вставляет пробелы во входные данные, сгенерированные tr: inputText, и отправляет форму, я получаю значение, которое было отправлено в JSF converter (мой конвертер не выполняет обрезку), установленное на входе. Но я получаю нулевое значение (исходное значение, которое поступило на вход) для управляемого компонента.
Страница JSF:
<tr:inputText label="..."
value="#{ManagedBean.object.defaultValue}" id="defValueId"
converter="#{MyConverter}">
<tr:validateLength maximum="255"/>
<f:attribute name="domainId" value="domainId"/>
</tr:inputText>
Когда я использую h:inputText, я получаю значение, которое было отправлено моему управляемому компоненту.
Почему и где Trinidad игнорирует пробелы? Могу ли я что-нибудь изменить, чтобы это работало так же, как для h: inputText.
Примечание: Я использую JSF 1.2 и Trinidad 1.2.13. Я не решаю здесь проблему с преобразованием пустой строки в null.
Комментарии:
1. Получаете ли вы тот же результат при удалении конвертера?
Ответ №1:
В рамках языка выражений JSF (EL) мы могли бы дополнительно использовать функции языка выражений JSF. Язык выражений, поддерживаемый Facelets, называется унифицированным языком выражений. Поэтому, если мы хотим вызвать функцию trim во входном тексте:
<h:inputText value="#{trim[ramdomText]}"/>
Дополнительная информация:http://java.sun.com/products/jsp/reference/techart/unifiedEL.html