2012-06-03 60 views
0

此問題一直困擾着我,直到永無止境!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方面幾乎不公平地隱藏與此應用程序。我喜歡客戶端庫,並通過這個過程學習了很多東西......但強烈的要求是我可以調用服務器端邏輯!

任何想法將非常感激!

+0

想要在每個鍵盤上點擊'moreButtonAsText'按鈕? – Daniel

+0

我的歉意,我認真地嘗試了一切!併發布錯誤的代碼迭代! – MagicFlow

+0

哦,對不起,丹尼爾 - 不,我只是想能夠執行一個bean(我使用這個用於服務器端行集操作)是主要的細節關係。我想創建一個編輯地址屏幕,以一種形式顯示員工的地址 - 只顯示選定的地址。要做到這一點,我想在服務器上執行一個託管bean來選擇顯示/編輯所選擇的記錄。我將使用用戶單擊選擇記錄並啓動此過程。 – MagicFlow

回答

0

好的解決了。

問題是託管bean需要使用正確的簽名事件作爲輸入參數進行設置。通過大量測試,我試圖用AjaxBehaviorEvent來使用同一個類。就像在前一個論壇中的例子一樣。

當我聲明一個ActionListener事件(符合按鈕jsf動作)時,該bean被執行!

St,and and and and shows shows what what!!!!

謝謝丹尼爾!

S