这个问题一直困扰着我!!
我已经看到论坛帖子 JSF f:ajax 侦听器未调用,它描述了我的确切问题。
我正在使用JSF 2.0,并且正在使用Jquery移动版作为扩展库。
我实际上已经将代码完全从帖子中复制到我的项目中(如下所示)。
我在会话范围内设置了相同的托管 bean,打印出一行。我可以看到 bean 在第一个输入文本上成功执行,分配了一个 ajax 侦听器
但是,它不适用于按钮。在我的用例中,我希望按钮仅充当调用托管 Bean 的桥梁,因此不希望提交表单。
我完全不知道为什么不执行豆子?
我也没有覆盖JS类,并且仅使用Jquery移动版。
这是对 Jquery 框架的限制吗?或者很可能是我的代码有问题?
S
<h:form id="f1">
<h:panelGroup id="switchSearchTexts">
<h:inputText accesskey="s" alt="Search" id="searchBoxPeople" title="Search Plebeians" valueChangeListener="#{peopleBean.simplePersonQuery}" size="25" rendered="#{peopleBean.easySearch}">
<f:ajax render="peopleDataTable" event="keyup" listener="#{contactsBean.morePressed}"
immediate="true"/>
</h:inputText>
<h:inputText accesskey="s" alt="Search First Name" id="searchBoxFN" title="Search First Name" size="25" rendered="#{!peopleBean.easySearch}">
<f:ajax render="moreButtonAsText" event="keyup" />
</h:inputText>
</h:panelGroup>
<div id="expandBox">
<h:inputText id="searchBoxLN" alt="Search Last Name" styleClass="hideToggle" title="Search Last Name" size="25" />
<h:inputText id="searchBoxAddress" alt="Search Address" styleClass="hideToggle" title="Search Address" size="25" />
</div>
<h:commandButton type="button" styleClass="moreButtonAsText" id="moreButtonAsText" value="More">
<f:ajax listener="#{contactsBeanFaces.morePressed}"/>
</h:commandButton>
</h:form>
***校正****
抱歉,我认真地尝试了一切! 并发布了错误的代码迭代!
我发现了一个很棒的笔记:http://java.dzone.com/articles/ajax-jsf-joined 这是一个巨大的帮助,但仍然没有成功。我感觉jquery移动正在搞砸事件?
我相信可能还需要按钮在表单中?
对不起,基本问题,但是我是一个Jdeveloper的人,他有点向后学习......DOM和客户端java/html方面的东西在这个应用程序中几乎是不公平的隐藏。我喜欢客户端库,并通过这个过程学到了很多东西......但一个强烈的要求是我可以调用服务器端逻辑!
任何想法将不胜感激!
。
问题是需要设置托管 Bean 作为输入参数的正确签名事件。通过大量的测试,我试图使用同一个类来获取AjaxBehaviorEvent。就像上一个论坛上的相同示例一样。
当我声明一个 ActionListener 事件(符合按钮 jsf 操作)时,bean 被执行了!
兴奋,并展示新鲜的眼睛可以带来什么!
谢谢丹尼尔!
S