【问题标题】:passing validator to a custom component, fails将验证器传递给自定义组件,失败
【发布时间】:2011-03-21 12:10:59
【问题描述】:

我有一个带有验证器的简单 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

所以问题在于将验证器名称发送到我的自定义组件时。

你看到解决方法了吗?

谢谢。

【问题讨论】:

    标签: validation jsf facelets icefaces


    【解决方案1】:

    我已经用完了

    <f:validatorId validatorId="#{validatorClass}"/>
    

    在我的 inputText 组件中

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 2022-11-24
      相关资源
      最近更新 更多