1

私のWebアプリでは、単一のバリデーターでクエリパラメーターのキー値を取得できません。

私のウェブページ:

    <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

正常に機能するソリューションは、クエリパラメーターごとに1つのValidator関数を用意することです。パラメータの名前を理解する方法はありますか?

次の質問:すべてのバリデーターをスキップして値をmyBeanに設定することは可能ですか?試しましたが、値が設定されていませんでしたmyBean.mobileModel

4

1 に答える 1

1

によってすべてのコンポーネント属性を取得できますUIComponent#getAttributes()

だから、これだけでうまくいくはずです:

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