SpringBoot & Bootsfaces:无法调用方法 getOnblur
SpringBoot & Bootsfaces: Couldn't invoke method getOnblur
我想使用 onblur 功能处理 inputSecret 的值,但出现错误 Couldn't invoke method 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);
}
我该如何解决?
BootsFaces 采用与其他 JSF 框架略有不同的 AJAX 方法。这个想法是简单地使用 JavaScript 回调函数来调用 Java 后端 bean 中的方法。但是,我们还希望保持与其他 JSF 框架的兼容性,因此我们不能跟随您的方法,尽管它可能很诱人。相反,我们决定在 AJAX 调用之前加上 ajax:
前缀。它后面跟着一个 EL 表达式,它也定义了参数列表。换句话说:除了标准的 JSF,BootsFaces 不传递事件参数。
长话短说:
只需像这样更改 onblur
属性:
<b:column span="3">
<p:outputLabel value="#{msg.confirmPassword}" />
<b:inputSecret value="#{workerDetail.confirmPassword}" onblur="ajax:workerDetail.checkPassword()"/>
</b:column>
请注意checkPassword
后面的括号。这是一个 EL 表达式,当事件被触发并发送到 Java 后端时执行。
生成的支持 bean 方法不需要事件参数:
public void checkPassword()
{
System.out.println(confirmPassword);
}
您的方法的不同之处在于,您的 EL 表达式是在呈现页面时计算的 - 这有点早。
我想使用 onblur 功能处理 inputSecret 的值,但出现错误 Couldn't invoke method 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);
}
我该如何解决?
BootsFaces 采用与其他 JSF 框架略有不同的 AJAX 方法。这个想法是简单地使用 JavaScript 回调函数来调用 Java 后端 bean 中的方法。但是,我们还希望保持与其他 JSF 框架的兼容性,因此我们不能跟随您的方法,尽管它可能很诱人。相反,我们决定在 AJAX 调用之前加上 ajax:
前缀。它后面跟着一个 EL 表达式,它也定义了参数列表。换句话说:除了标准的 JSF,BootsFaces 不传递事件参数。
长话短说:
只需像这样更改 onblur
属性:
<b:column span="3">
<p:outputLabel value="#{msg.confirmPassword}" />
<b:inputSecret value="#{workerDetail.confirmPassword}" onblur="ajax:workerDetail.checkPassword()"/>
</b:column>
请注意checkPassword
后面的括号。这是一个 EL 表达式,当事件被触发并发送到 Java 后端时执行。
生成的支持 bean 方法不需要事件参数:
public void checkPassword()
{
System.out.println(confirmPassword);
}
您的方法的不同之处在于,您的 EL 表达式是在呈现页面时计算的 - 这有点早。