我有一些验证器用于某些组件,例如:
<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
}
我根本找不到任何方法来清除值...对于实例,输入组件有setValue
但HtmlMessage似乎没有这样的东西。
你知道怎么办?
Update
:要清除输入组件值,我这样做:(我在关闭一些弹出窗口时使用它来清除用户输入)
if (component instanceof EditableValueHolder) {
final EditableValueHolder editableValueHolder = (EditableValueHolder) component;
editableValueHolder.setSubmittedValue(null);
editableValueHolder.setValue(null);
editableValueHolder.setLocalValueSet(false);
}
答案 0 :(得分:0)
经过几个小时的调查后,我发现了关闭弹出窗口时消息错误不清楚的原因。
某些selectOneMenus存在immediate=true
属性会导致此问题。在icefaces中,我们使用这个属性与partialSubmit=true
一起使用,但在这里我们并不需要它,所以单独留下它会导致这个丑陋的问题。
所以基本上,没有setter fot这个因为你不需要按照我想要的方式手动清理它。
我决定不删除这个问题,因为它可以帮助某人。