Сегодня я ищу немного советов по проблеме, с которой я сталкиваюсь.
То, что я пытаюсь сделать, - это создать страницу на лету с проверкой и прочим. Конечный результат - позволить пользователю настраивать поля на странице с помощью административных функций. Ниже приведена копия кода, который я использую в качестве тестовой страницы, где я перебираю поля «Настроенные» и выписываю поля, используя определенные критерии.
<ui:repeat var="field" value="#{eventMgmt.eventFields}" varStatus="status">
<div class="formLabel">
<h:outputLabel value="#{field.customName}:"></h:outputLabel>
</div>
<div class="formInput">
<h:inputText id="inputField" style="width:# {field.fieldSize gt 0 ? field.fieldSize : 140}px;">
<f:validateRegex disabled="#{empty field.validationPattern}" pattern="#{field.validationPattern}"></f:validateRegex>
</h:inputText>
<h:message for="inputField" showDetail="true" errorClass="errorText"></h:message>
</div>
</ui:repeat>
После того, как страница отображается и я пытаюсь отправить какие-либо значения для поля, я получаю следующее сообщение: «Для шаблона регулярного выражения должно быть установлено непустое значение». что, очевидно, означает, что выражение не заполнено. Что меня интересует, так это то, что поля, для которых нет выражения, будут отключены при оценке EL. Я также могу взять тот же код # {field.validationPattern} и поместить его на страницу, и правильное значение будет написано на странице.
Итак, мой вопрос (ы):
1. Возможно ли это?
2. В какой момент контейнер JSF смотрит на привязку шаблона для регулярного выражения проверки?
3. Что я делаю неправильно или как это правильно делать?
Я использую Tomcat 7.0.22, Mojarra 2.1.5 и Eclipse в качестве моей IDE.