JSF:未调用ajax侦听器

JSF:未调用ajax侦听器,ajax,jsf,listener,Ajax,Jsf,Listener,我试图在单击h:commandButton时使用另一个h:inputText开关关闭h:inputText。为此,我尝试将f:ajax命令与h:commandButton绑定,侦听器在bean上设置一个值(决定显示哪个),然后重新渲染该区域 我已经尝试在f:ajax上使用listener,在h:commandButton上使用actionListener,在f:ajax上使用带有execute的h:commandButton上的action。什么都没用。我试图调用的方法根本没有被调用-没有pri

我试图在单击h:commandButton时使用另一个h:inputText开关关闭h:inputText。为此,我尝试将f:ajax命令与h:commandButton绑定,侦听器在bean上设置一个值(决定显示哪个),然后重新渲染该区域

我已经尝试在f:ajax上使用listener,在h:commandButton上使用actionListener,在f:ajax上使用带有execute的h:commandButton上的action。什么都没用。我试图调用的方法根本没有被调用-没有println(见下文)

panelGroup正在重新呈现,这就是为什么我需要OneEvent属性,该属性根据标题重新附加一些JavaScript提示文本(我之前有一个问题涉及到这一点)

我尝试调用的方法:

public void morePressed(AjaxBehaviorEvent e) {
    easySearch = !easySearch;
    System.out.println("Made it!");
}
不工作的JSF段(请注意,最后一个h:commandButton正在尝试重新呈现panelGroup):

我不知道。正如我所说的,我在h:commandButton上尝试了actionListener,使用了各种方法,以及ajax上的各种侦听器方法。有人能理解为什么听众不工作吗

更新:

在得到答案之前,我最终要做的是将所有内容转换为基于JavaScript的显示和隐藏,如果他们最初没有隐藏JavaScript,那么我需要隐藏一些东西,等等

但是我现在需要其他地方的f:ajax


解决方案是在h:commandButton上取出event=“click”。我现在仍然知道为什么这会导致它崩溃,但是,嘿,不管怎样都行。

你的js代码中真的有一个名为
callfunctionjaxrequest
的函数吗?原因如果不是,则可能导致按钮不工作(因为它引用的是一个不存在的功能)

查看firebug以查找可能的错误

尝试此版本的命令按钮(event=“click”也可以删除…也可以自行执行)


另一件事,在对上层输入文本的ajax调用中,您两次引用了
searchBoxPeople
(而不是第二个f:ajax中的
searchBoxFN
),请修复此问题,否则在使用
searchBoxFN
时,其f:ajax将尝试执行未呈现的元素。。。(可能导致严重问题…)


p、 您的
h:form中的s
prependId=“false”
将简化jQuery中的选择器…

您的js代码中是否真的有一个名为
callfunctionjaxrequest
的函数?原因如果不是,则可能导致按钮不工作(因为它引用的是一个不存在的功能)

查看firebug以查找可能的错误

尝试此版本的命令按钮(event=“click”也可以删除…也可以自行执行)


另一件事,在对上层输入文本的ajax调用中,您两次引用了
searchBoxPeople
(而不是第二个f:ajax中的
searchBoxFN
),请修复此问题,否则在使用
searchBoxFN
时,其f:ajax将尝试执行未呈现的元素。。。(可能导致严重问题…)


p、 在
h:form
中的s
prependId=“false”
将简化jQuery中的选择器…

问题是需要使用正确的签名事件作为输入参数设置托管bean。通过大量测试,我尝试使用同一个类获取AjaxBehaviorEvent。就像上一个论坛上的同一个例子一样

当我声明一个ActionListener事件(与按钮jsf操作兼容)时,bean就被执行了

我也有同样的问题,并按照你的榜样来帮助我。我只是(20小时)通过在我的bean中包含以下内容来解决这个问题:

第一个现在被解雇了

public void actionListener(ActionEvent actionEvent) {
    // Add event code here...
    System.out.println("Made it!");
}

public void morePressed(AjaxBehaviorEvent e) {

    System.out.println("Made it!");
}

问题是托管bean需要设置正确的签名事件作为输入参数。通过大量测试,我尝试使用同一个类获取AjaxBehaviorEvent。就像上一个论坛上的同一个例子一样

当我声明一个ActionListener事件(与按钮jsf操作兼容)时,bean就被执行了

我也有同样的问题,并按照你的榜样来帮助我。我只是(20小时)通过在我的bean中包含以下内容来解决这个问题:

第一个现在被解雇了

public void actionListener(ActionEvent actionEvent) {
    // Add event code here...
    System.out.println("Made it!");
}

public void morePressed(AjaxBehaviorEvent e) {

    System.out.println("Made it!");
}

我遇到过这样的问题。结果表明,某个地方的inputText有一个值=“#{something.something}”,其中属性不可设置。在任何地方都没有报告异常情况。我必须在异常和所有子类上设置断点才能找到它。

我遇到了这样的问题。结果表明,某个地方的inputText有一个值=“#{something.something}”,其中属性不可设置。在任何地方都没有报告异常情况。我必须在Exception和所有子类上放置一个断点才能找到它。

我确实有CallFunctionaXRequest,并且修复了ajax调用(并且删除了所有执行,因为我不需要它们)。然而奇怪的是,取出event=“click”会使它工作。我想知道为什么把它放在里面却不起作用?event=“click”是多余的,但不应该造成任何伤害。。。奇怪的是,你确定这不是引用错误的id没有造成伤害吗?我有这样一个:
,在morePressed中有一个println;它从未被印刷过。取出
event=“click”
到达打印LN。我确实在javascript文件中的按钮上附加了一个jQuery切换,但我不认为这会覆盖该行为并导致单击不冒泡或发生其他事情;我没有任何传播停止。好吧,真的可能是切换对event=“click”造成了一些混乱,奇怪。。。在没有其他代码的情况下编写一些特定的问题可能会很有趣,只需一个带有f:ajax和jquerytoggle的按钮。。。为了看看发生了什么……我确实有了CallFunctionalJAXRequest,并且修复了ajax调用(并且删除了所有执行,因为我不需要它们)
<h:commandButton type="button" styleClass="moreButtonAsText" id="moreButtonAsText" value="More">
    <f:ajax listener="#{peopleBean.morePressed}" render="switchSearchTexts" />
</h:commandButton>
public void actionListener(ActionEvent actionEvent) {
    // Add event code here...
    System.out.println("Made it!");
}

public void morePressed(AjaxBehaviorEvent e) {

    System.out.println("Made it!");
}