2012-09-24 106 views
1

是否可以從Jquery調用Bean?我的要求如下,從Jquery調用Bean方法

我有一個基於JSF 1.2的Servlet。

如果用戶會話空閒一段時間,會導致無效。在使會話無效前1分鐘顯示Jquery對話框。用戶在對話框中有2個選項。 「是的,我想繼續」將延長會議。 「我不想註銷」將註銷用戶。

當用戶點擊「否我想註銷」時,我想調用bean方法,在此我更新數據庫&使會話無效。

下面是代碼,

'No, Log out': function(){ 
$j.idleTimeout.options.onTimeout.call($j.post('//This is where am stuck',function() 

我想打電話給豆在$ j.post這樣我可以做我的豆一些清理活動。

這是怎麼做到的?

問候,

+0

如果什麼終端用戶點擊「是」後,* *是被證明1分鐘的對話? – BalusC

+0

@BalusC:當用戶點擊「是,我想繼續」時,我正在調用一個JSP頁面(extend_session.jsp)。這個JSP頁面裏面沒有任何內容。所以,當這個JSP頁面被用戶擊中(在會話失效觸發器之前),會話就會被擴展。這樣,用戶可以繼續瀏覽。如果用戶沒有點擊「是」,1分鐘會話失效將會發生,用戶將被重定向到登錄頁面。 –

+0

你說會話失效前1分鐘顯示對話框。因此,如果對話框顯示的時間超過1分鐘(例如,因爲最終用戶已經出去吃午餐或洗手間或吸菸等),那麼會話在服務器中已經失效(至少,你是暗示的)。 – BalusC

回答

1

你既可以使用只使用一個隱藏的(style="display:none")的commandButton與動作指向的方法在你的bean,並在其上調用.click()從jQuery的

像這樣

<h:commandButton id="myButton" action="#{myBean.myInvalidateMethod}" style="display:none"/> 

jQuery的

&("#myButton").click();//possible myForm prefix appear before the id so use #myForm\\:myButton selector 

或者你可以打電話從您的JSF頁面的servlet,類似這樣的答案Calling a Servlet from a JSP page using jQuery Ajax

0

您無法直接訪問這些方法,你必須讓你的servlet處理您的請求,並要求你的方法和JSON格式返回數據,例如