此问题一直困扰着我,直到永无止境!JSF使用jQuery Mobile进行Ajax调用
我看到论坛帖子JSF f:ajax listener not called其中描述了我的确切问题。
我正在使用JSF 2.0,并使用Jquery mobile作为扩展库。
我实际上已将代码完全从帖子中复制到我的项目中(如下所示)。
我在会话范围中设置了相同的托管bean,打印出一行。我可以看到bean在第一个输入文本上成功执行,其中一个分配了ajax监听器
但它不适用于按钮。在我的用例中,我希望按钮只能作为调用托管bean的桥梁,所以不希望表单提交。
我完全丧失了为什么bean没有执行?
我没有覆盖JS类,并且只使用Jquery移动。
这是Jquery框架的限制吗?或者更可能是我的代码问题?
小号
<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 mobile正在搞乱这个事件?
我相信也可能有一个按钮需要在一个窗体?
对不起,基本的问题,但我是一个Jdeveloper的家伙,谁是学习倒退....东西的DOM和客户端java/html方面几乎不公平地隐藏与此应用程序。我喜欢客户端库,并通过这个过程学习了很多东西......但强烈的要求是我可以调用服务器端逻辑!
任何想法将非常感激!
想要在每个键盘上点击'moreButtonAsText'按钮? – Daniel
我的歉意,我认真地尝试了一切!并发布错误的代码迭代! – MagicFlow
哦,对不起,丹尼尔 - 不,我只是想能够执行一个bean(我使用这个用于服务器端行集操作)是主要的细节关系。我想创建一个编辑地址屏幕,以一种形式显示员工的地址 - 只显示选定的地址。要做到这一点,我想在服务器上执行一个托管bean来选择显示/编辑所选择的记录。我将使用用户单击选择记录并启动此过程。 – MagicFlow