日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PrimeFaces在GlassFish 3.1.2.2上推动大气

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PrimeFaces在GlassFish 3.1.2.2上推动大气 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PrimeFaces 3.4在三天前問世。 除了通常令人敬畏的新組件和更新組件之外,它還包括新的PrimeFaces Push框架。 基于Atmosphere,這為您的應用程序提供了簡單的推送機制。 這是在最新的GlassFish 3.1.2.2上配置和運行它的方法。

準備工作

像往常一樣,您應該安裝一些Java , Maven和GlassFish 。 如果您單手需要它,請嘗試使用NetBeans 7.2 。 它是最新的,也是最出色的,并附帶了此示例所需的所有內容。 將零件或整體安裝到您選擇的位置,然后開始創建新的GlassFish域:

asadmin create-domain pf_push

接受默認值并啟動您的域

asadmin start-domain pf_push

現在,您必須為您的域啟用Comet支持 。 通過使用http:// <host>:4848 / admin ui或以下命令來執行此操作:

asadmin set server-config.network-config.protocols.protocol.http-1.http.comet-support-enabled='true'

這就是您配置域所要做的全部。

Maven項目設置

現在切換到IDE并創建一個新的基于Maven的Java EE 6項目。 將primefaces存儲庫添加到<repositories>部分,并將primefaces依賴項添加到您的項目<dependencies>部分或項目的pom.xml:

<repository><url>http://repository.primefaces.org/</url><id>primefaces</id><layout>default</layout><name>Repository for library PrimeFaces 3.2</name></repository><dependency><groupId>org.primefaces</groupId><artifactId>primefaces</artifactId><version>3.4</version></dependency>

此外,我們還需要最新的Atmosphere依賴項(此版本與JeanFrancois Arcand相對 )

<dependency><groupId>org.atmosphere</groupId><artifactId>atmosphere-runtime</artifactId><version>1.0.0</version> </dependency>

它使用的是Log4j,如果需要更多輸出,最好還包括相應的配置或使用slf4j將其橋接到JUL。 要稍后做,只需在pom.xml中添加以下內容:

<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.6.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-jdk14</artifactId><version>1.6.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>log4j-over-slf4j</artifactId><version>1.6.6</version></dependency>

只剩下一件事要做。 PrimePush組件需要注冊其Servlet通道。 因此,打開您的web.xml并添加以下內容:

<servlet><servlet-name>Push Servlet</servlet-name><servlet-class>org.primefaces.push.PushServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>Push Servlet</servlet-name><url-pattern>/primepush/*</url-pattern> </servlet-mapping>

就是這樣! 上代碼!

編碼

我將使用PrimeFaces用戶指南中提到的示例。 一個非常簡單的示例,它具有可以遞增的全局計數器。

import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import org.primefaces.push.PushContext; import org.primefaces.push.PushContextFactory;/*** Counter is a global counter where each button click increments the count* value and new value is pushed to all subscribers.** @author eiselem*/ @ManagedBean @SessionScoped public class GlobalCounterBean implements Serializable {private int count;public int getCount() {return count;}public void setCount(int count) {this.count = count;}public synchronized void increment() {count++;PushContext pushContext = PushContextFactory.getDefault().getPushContext(;pushContext.push('/counter', String.valueOf(count));} }

PushContext包含整個魔術。 它主要用于發布和計劃消息以及管理偵聽器等。 從您的方面調用它。 這看起來很簡單和熟悉:

<h:form id='counter'> <h:outputText id='out' value='#{globalCounterBean.count}' styleClass='display' /> <p:commandButton value='Click' actionListener='#{globalCounterBean.increment}' /> </h:form>

除了增加計數器,這基本上不執行任何操作。 因此,您必須添加一些更多的魔術來連接到推式通道。 在表單下方添加以下內容:

<p:socket channel='/counter' > <p:ajax event='message' update='counter:out' /> </p:socket>

<p:socket />是PrimeFaces組件,用于處理服務器和瀏覽器之間的連接。 它通過定義通信通道和回調來處理廣播。 包含的<p:ajax />組件偵聽消息事件并更新表單中的counter字段。 但是,這需要進行額外的服務器往返。 您還可以通過使用一些Java腳本并將onMessage屬性綁定到它來更新輸出字段,從而簡化此操作:

<script type='text/javascript'> function handleMessage(data) { $('.display').html(data); } </script><p:socket onMessage='handleMessage' channel='/counter' />

到此為止。 祝賀您的第一個PrimeFaces Push示例。

祝您編程愉快,別忘了分享!

參考:來自JCG合作伙伴 Markus Eisele在GlassFish 3.1.2.2上的帶有大氣的PrimeFaces Push在Java企業軟件開發博客上。


翻譯自: https://www.javacodegeeks.com/2012/09/primefaces-push-with-atmosphere-on.html

總結

以上是生活随笔為你收集整理的PrimeFaces在GlassFish 3.1.2.2上推动大气的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。