java - 如何使我的验证器对我的复选框控件有条件
问题描述
我为我的复选框控件定义了一个验证器:
<xp:checkBox uncheckedValue="false"
checkedValue="true" readonly="#{!matterBean.matter.editable}"
id="cbKCSupport" style="width:100%"
value="#{matterBean.matter.creatorKCSupport}"
validator="#{matterValidators.valCreatorKCSupport}">
</xp:checkBox>
该方法没有什么花哨的,我只是检查复选框的值真或假:
public void valCreatorKCSupport(FacesContext facesContext, UIComponent component, Object value) {
utils.printToConsole(this.getClass().getSimpleName().toString() + " - valCreatorKCSupport(...), value = " + value.toString());
String msg = null;
if (value.toString().equals("false")){
msg = matterProp.getProperty("gen_KCSupport");
FacesMessage message = new FacesMessage(msg);
throw new ValidatorException(message);
}
}
我注意到这个验证会阻止其他组件的行为,例如打开对话框。
对于其他控件,我有一个类似的方法,其中所需的属性基于哪个组件(按钮)启动了对服务器的调用:
<xp:this.required><![CDATA[#{javascript:return ( submittedBy('btnSendToCommitee') || submittedBy('btnForCompletion') )}]]></xp:this.required>
我尝试为我的复选框设置类似的方法:
但随后我收到一条错误消息:
执行 JavaScript 操作表达式时出错脚本解释器错误,line=2,col=33:调用方法 'valCreatorKCSupport(com.ibm.xsp.domino.context.DominoFacesContext, com.ibm.xsp.component.xp.XspInputCheckbox, string) 时出错' 在 java 类 'se.sebank.kkom.test.MatterValidators' 上的消息(带有来自 matterProp.getProperty("gen_KCSupport") 的文本的文本)
有人建议我应该如何将一些条件语句应用于我的验证器吗?
解决方案
推荐阅读
- java - 尝试迭代集合时,HashMap 无法转换为模型
- unity3d - Unity:如何通过网络销毁游戏对象?
- excel - 使用 userform vba excel 更新工作表上的数据
- performance - 如何避免 Sleuth Slf4J 集成的大量开销
- c++ - ResolveAssemblyReference 找不到 dll,我不能强迫它查看它的位置
- javascript - Ajax 不写入数据库
- string - FFmpeg 使用边界字符串创建 mjpeg
- javascript - TextInput 上的 RTL 适用于所有其他渲染
- python - python - 在控制台输出中编码回车
- html - 如何使用flexbox使文本始终相对于div大小居中