У меня есть простой inputText с валидатором:
<ice:inputText
id="test"
value="#{applicationBean.selectedApplication['name']}"
validator="defaultFieldValidator"
required="true"></ice:inputText>
<ice:message
styleClass="graValidationMessage graNotRequired"
for="test" />
Возможно, вы заметили, что я указал валидатор: defaultFieldValidator, и все работает нормально.
Теперь я создаю компонент, который будет действовать как оболочка для inputText с именем: inputTextValidated:
<ice:inputText
id="#{id}#{required}"
value="#{bean[field]}"
rendered="#{rendered}"
styleClass="#{styleClass} #{not required ? 'graNotRequired':''}"
style="width: #{width};"
partialSubmit="#{partialSubmit}"
disabled="#{disabled}"
required="#{required}"
validator="#{validatorClass}">
</ice:inputText>
Если я сейчас попытаюсь вызвать этот компонент (с тем же валидатором для начала, который теперь передается через параметр):
<gra:inputTextValidated
id="inputText"
bean="#{applicationBean.selectedApplication}"
field="#{fieldValue}"
validatorClass="defaultFieldValidator"
renderLabel="false"
required="true"
disabled="false"
width="90%"
height="#{secondTabComponentsHeight}">
</gra:inputTextValidated>
если происходит сбой со следующей ошибкой:
Identity 'validatorClass' does not reference a MethodExpression instance, returned type: java.lang.String
Так что проблема в том, что при отправке имени валидатора моему пользовательскому компоненту.
Видите ли вы обходной путь?
Спасибо.