1

在我的网络应用程序中,我无法使用单个验证器获取查询参数的键值。

我的网页:

    <f:metadata>
        <f:viewParam name="version" value="#{myBean.version}" 
            validator="#{myBean.inputValidator}" />
        <f:viewParam name="mobilemodel" value="#{myBean.mobileModel}" 
            validator="#{myBean.inputValidator}" />
        <f:event listener="#{myBean.preRenderViewEventHandler}"
            type="preRenderView" />
    </f:metadata>

我验证组件的功能:

public void inputValidator(FacesContext context, UIComponent component, Object value) throws ValidatorException {
        LOG.debug("Component: " + component);
        LOG.debug("Value: " + value);
    }

_UIComponent

一个很好的解决方案是为每个查询参数设置一个 Validator 函数。有没有办法理解参数的名称?

下一个问题:是否可以跳过所有验证器并将值设置为 myBean?我试过了,但没有设置值myBean.mobileModel

4

1 回答 1

1

可以通过 获取所有组件属性UIComponent#getAttributes()

所以,应该这样做:

String name = (String) component.getAttributes().get("name");
// ...
于 2013-01-31T18:39:51.967 回答