我的页面上有两个输入组件。他们每个人都有一个转换器(它是一个检查空值的转换器,比如 JSF 需要一个,但由于某些原因我不能使用 jsf 一个,所以我制作了自己的转换器)。
我也有一个ice:selectBooleanCheckbox
:
<ice:selectBooleanCheckbox
styleClass="graUserAppUserGroupAddChk"
value="#{userGroupTableNewRecordBean.addNewDomain}"
partialSubmit="true"
immediate="true"
valueChangeListener="#{userGroupTableNewRecordBean.addDomainListener}"></ice:selectBooleanCheckbox>
如您所见,我immediate=true
在其上添加了属性,因为当我选择此复选框时,我确实希望跳过转换阶段但它不起作用,转换器仍然显示它们的警告。你知道为什么吗?
我还在此复选框上添加了一个 valueChangeListener 并根据此引用直接调用了 renderResponse:
So in the value changed listener method for the dropdown lists, just
从 FacesContext 对象调用 renderResponse() ,验证和转换被绕过,你仍然可以做你想做的事。
public void addDomainListener(final ValueChangeEvent valueChangeEvent) {
// skip validation
logger.info("listener calleddddddddddddd");
FacesContext.getCurrentInstance().renderResponse();
}
也许 JSF 大师可以提供帮助?
非常感谢...
更新:我知道解决方案是将复选框放在单独的表格中,但我负担不起......
更新2:我已经更正了一些关于监听器的代码,所以现在它在点击时被调用,但转换器仍然失败并且渲染响应阶段没有完成......
更新3:这不是icefaces问题......我已经尝试过 ah:selectBooleanCheckbox
并且它发生了同样的......