我有一个带验证器的简单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
所以问题是将验证器名称发送到我的自定义组件时。
你看到了解决方法吗?
感谢。
答案 0 :(得分:0)
我最终使用了
<f:validatorId validatorId="#{validatorClass}"/>
在我的inputText组件
中