有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用JQuery Mobile调用java JSF Ajax

这个问题一直困扰着我

我看到了论坛帖子JSF f:ajax listener not called,它描述了我的确切问题

我正在使用JSF2.0,并将jQueryMobile用作扩展库

实际上,我已经将文章中的代码复制到了我的项目中(如下所示)

我在会话范围中设置了相同的托管bean,打印出一行。我可以看到bean成功地在第一个输入文本上执行,该文本被分配了一个ajax侦听器

但是,它对按钮不起作用。在我的用例中,我只希望按钮充当调用托管bean的桥梁,因此不希望表单提交

我完全不知道为什么这个bean没有被执行

我也没有覆盖JS类,我只使用Jquery mobile

这是对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移动正在干扰这个活动

我相信按钮也可能需要在表单中

关于基本的问题,我很抱歉,但是我是一个Jdeveloper的家伙,有点向后学习。。。。这个应用程序几乎不公平地隐藏了DOM和客户端java/html方面的内容。我热爱客户端库,通过这个过程我学到了很多。。。。但一个强烈的要求是我可以调用服务器端逻辑

任何想法都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    好的,问题解决了

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

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

    充满激情,展示新鲜的眼睛能带来什么

    谢谢你,丹尼尔