我想使用onblur功能处理inputSecret的值但我得到错误无法调用方法getOnblur
<b:column span="3">
<p:outputLabel value="#{msg.confirmPassword}" />
<b:inputSecret value="#{workerDetail.confirmPassword}" onblur="#{workerDetail.checkPassword}"/>
</b:column>
这是支持bean的方法:
public void checkPassword(AjaxBehaviorEvent event)
{
System.out.println(confirmPassword);
}
我该如何解决?
答案 0 :(得分:1)
BootsFaces采用与其他JSF框架略有不同的AJAX方法。我们的想法是简单地使用JavaScript回调函数来调用Java后端bean中的方法。但是,我们还希望保持与其他JSF框架的兼容性,因此我们无法按照您的方法进行操作,因为它可能具有诱惑力。相反,我们决定在AJAX调用之前加上bulkWrite
前缀。接下来是一个EL表达式,它也定义了参数列表。换句话说:除了标准JSF之外,BootsFaces不会传递事件参数。
TL; DR:
只需像这样更改ajax:
属性:
onblur
请注意<b:column span="3">
<p:outputLabel value="#{msg.confirmPassword}" />
<b:inputSecret value="#{workerDetail.confirmPassword}" onblur="ajax:workerDetail.checkPassword()"/>
</b:column>
后面的括号。它是一个EL表达式,在事件被触发并发送到Java后端时执行。
生成的辅助bean方法不需要事件参数:
checkPassword
您的方法的不同之处在于,在呈现页面时评估了您的EL表达式 - 这有点早。