h: inputText не переопределяет метку при проверке - PullRequest
0 голосов
/ 13 октября 2010

У меня возникает особая проблема, когда я пытаюсь вызвать значение поля метки h: inputText при проверке.Это работает только когда я передаю статическое значение в поле метки.Когда я передаю ему динамическое значение, он не может отобразить метку, если какая-то проверка не удалась для этого поля.

<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, и там написано, что метка принимает выражения языка выражений.Так почему же переданное динамическое значение не отображается после проверки ошибки?

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

Спасибо.

1 Ответ

1 голос
/ 15 октября 2010

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

Я загружал пакет ресурсов в xhtml, используя

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

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

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

, и теперь он работает.

...