【问题标题】:JSF Ajax Call with JQuery Mobile使用 JQuery Mobile 进行 JSF Ajax 调用
【发布时间】:2012-06-03 11:55:55
【问题描述】:

这个问题一直困扰着我!!

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

我正在使用 JSF 2.0,并且正在使用 Jquery mobile 作为扩展库。

我实际上已经将帖子中的代码完全复制到了我的项目中(如下所示)。

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

但它不适用于按钮。在我的用例中,我希望按钮仅充当调用托管 bean 的桥梁,因此不希望提交表单。

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

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

这是对 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 mobile 搞砸了这个事件?

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

对于基本问题,我很抱歉,但是我是一名 Jdeveloper 人,他正在向后学习.... DOM 和客户端 java / html 方面的东西几乎不公平地隐藏在这个应用程序中。我喜欢客户端库,并通过这个过程学习了很多东西......但一个强烈的要求是我可以调用服务器端逻辑!

任何想法都将不胜感激!

【问题讨论】:

  • 您想在每个按键上单击moreButtonAsText 按钮吗?
  • 抱歉,我在认真尝试一切!并发布了错误的代码迭代!
  • 抱歉,Daniel - 不,我只是希望能够执行一个 bean(我将它用于服务器端行集操作)是主细节关系。我想创建一个编辑地址屏幕,以一种形式显示员工的地址 - 仅显示选定的地址。为此,我想在服务器上执行一个托管 bean 来选择所选记录进行显示/编辑。我将使用用户单击来选择记录并启动此过程。

标签: java jquery ajax jsf mobile


【解决方案1】:

好的,解决了。

问题是托管 bean 需要使用正确的签名事件作为输入参数进行设置。通过大量测试,我尝试使用同一个类来处理 AjaxBehaviorEvent。与上一个论坛上的相同示例一样。

当我声明一个 ActionListener 事件(符合按钮 jsf 动作)时,bean 被执行!

兴奋,并展示了新鲜的眼睛可以带来什么!

谢谢丹尼尔!

S

【讨论】:

    猜你喜欢
    • 2016-01-26
    • 2013-11-04
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多