2010-10-13 3 views
0

У меня возникает специфическая проблема, когда я пытаюсь вызвать значение поля метки h: inputText при проверке. Он работает только при передаче статического значения в поле метки. Время, когда я передаю ему динамическое значение, не может отобразить метку, если для этого поля не выполняется проверка.h: inputText не маркирует reRender при проверке

<h:inputText id="fullNameField" value="#{newUserFormBean.fullName}" 
     **label="${nlsSupport.label_fullName}"** required="true" size="32" styleClass="required">       
       <f:validateLength minimum="3" maximum="64"/> 
</h:inputText> 

Если проверка не выполняется для минимальной длины, отображается сообщение об ошибке, как:

нет этикеток оказывается здесь: должно быть не менее 3-х символов

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

<h:inputText id="fullNameField" value="#{newUserFormBean.fullName}" 
     **label="Full Name"** required="true" size="32" styleClass="required">  
     <f:validateLength minimum="3" maximum="64"/> 
    </h:inputText> 

Теперь, если проверка не выполняется для минимальной длины, отображается сообщение об ошибке, как:

Полное имя: должно быть не менее 3-х символов

Я также посмотрел на документацию JSF , и он читает, что метка принимает выражения выражения выражения. Итак, почему динамическое значение передается без рендеринга после проверки отказов?

Кроме того, мне нужно передать ярлык динамически (из пакета ресурсов), чтобы добавить функцию национального языка для разных языков. Именно по этой причине мне приходится передавать динамическое значение атрибуту метки вместо статического поля.

Спасибо.

ответ

1

Получил решение.

Я загружал пакет ресурсов в XHTML с помощью

<f:loadBundle basename="com.myproject.i18n.nls" var="nlsSupport" />,

, который может вызвать проблемы при загрузке поля пакета ресурсов по проверке Ajax. Теперь я изменил его, чтобы быть реализовать поддержку Ajax

<a4j:loadBundle basename="com.myproject.i18n.nls" var="nlsSupport" />

и он работает в настоящее время.