2011-11-24 129 views
1

消息值我有它呈现例如一些组件的验证:如何清除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 
    } 

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

你知道有什么办法吗?

Update:要清除输入组件值,我不喜欢这样写道:

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

回答

0

调查的几个小时后(关闭一些弹出窗口时清除用户输入我用这个),我找到了原因关闭弹出窗口时消息错误不明确。

有一个immediate=true属性为selectOneMenus导致此问题。在icefaces中,我们使用这个属性来对partialSubmit=true进行修改,但是在这里我们并不需要它,所以一个人呆着就会造成这个丑陋的问题。

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

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