在我的 xpage 上,我为 inputtext 控件定义了一个验证器:
<xp:inputText id="cv"
disabled="#{!employeeBean.employee.editable}"
value="1"
validator="#{employeeValidator.valAttachments}">
<xp:this.required><![CDATA[#{javascript:return submittedBy("btnSendToHR")}]]></xp:this.required>
<xp:this.validators>
<xp:validateRequired
message="No CV added">
</xp:validateRequired>
</xp:this.validators>
</xp:inputText>
验证器非常基础,看起来有点如下:
public void valAttachments(FacesContext facesContext, UIComponent component, Object value) {
// my business logic here
String msg = null;
msg = "//collecting string from properties file";
FacesMessage message = new FacesMessage(msg);
throw new ValidatorException(message);
}
现在我试图让我的验证器以触发提交的按钮为条件 (submittedBy("btnSendToHR"))(我在这篇博客文章中找到了灵感http://dontpanic82.blogspot.com/2010/03/xpages-制作验证行为.html):
<xp:this.validator><![CDATA[#{javascript://emploteeValidator.valAttachments
if (true == submittedBy("btnSendToHR")){
importPackage(se.bank.app.test);
var mv = new se.bank.app.test.EmployeeValidator();
mv.valAttachments(facesContext, getComponent("cv"),"0" );
}}]]></xp:this.validator>
我看到该方法被调用(例如,当我在方法中包含 System.out.println() 时)。一个例子:
执行 JavaScript 动作表达式时出错脚本解释器错误,行 = 5,列 = 12:调用方法时出错
来自 valAttachments 的 Java 类“se.bank.app.test.EmployeeValidator”上的“valAttachments(com.ibm.xsp.domino.context.DominoFacesContext, com.ibm.xsp.component.xp.XspInputText, string)”:测试验证 cv , 提交值=0
有人可以解释我如何根据提交 Id(一个按钮)制作验证器?
繁星淼淼
相关分类