如何清除jsf中的消息值

时间:2011-11-24 11:14:57

标签: jsf

我有一些验证器用于某些组件,例如:

<span class="iceMsgError graValidationMessageError graNotRequiredError" id="j_id1950:selectOneMenuVdcValidator">Value is required!</span>

我想在某些情况下清除价值,我这样做:

if (component.getClientId(FacesContext.getCurrentInstance()).contains(VALIDATORS_COMPONENT_ID)) {
        final HtmlMessage messageValidator = (HtmlMessage) component;
        //clear value here
    }

我根本找不到任何方法来清除值...对于实例,输入组件有setValueHtmlMessage似乎没有这样的东西。

你知道怎么办?

Update:要清除输入组件值,我这样做:(我在关闭一些弹出窗口时使用它来清除用户输入)

if (component instanceof EditableValueHolder) {
        final EditableValueHolder editableValueHolder = (EditableValueHolder) component;
        editableValueHolder.setSubmittedValue(null);
        editableValueHolder.setValue(null);
        editableValueHolder.setLocalValueSet(false);
    }

1 个答案:

答案 0 :(得分:0)

经过几个小时的调查后,我发现了关闭弹出窗口时消息错误不清楚的原因。

某些selectOneMenus存在immediate=true属性会导致此问题。在icefaces中,我们使用这个属性与partialSubmit=true一起使用,但在这里我们并不需要它,所以单独留下它会导致这个丑陋的问题。

所以基本上,没有setter fot这个因为你不需要按照我想要的方式手动清理它。

我决定不删除这个问题,因为它可以帮助某人。