Spring + ZK 整合範例

一、事先準備 .jar     點我下載

二、在Eclipse 中建立一個 ZK project
( 專案名稱為 SpringHibernateIntegrateOnZK )

三、將 需額外準備 .jar 包 丟入 WEB-INF/lib 中

四 、設置 WEB-INF/web.xml   –
log4j 配置 請將下列xml代碼 加到 web.xml 最下面

 

加完上列代碼後請先關閉 web.xml

我們有看到上列代碼中的一段指明了 log4j 需要在 WEB-INF目錄底下

建立一個  log4j.properties 檔案

所以我們必須在   /WEB-INF 下   建立一個   log4j.properties

然後將下列內容複製到該檔案內

 

五、 設置 WEB-INF/web.xml   –  Spring 配置
將下列代碼 複製到 web.xml 最下面 

 

六、 建立Src – 在com Package中建立
HelloSpring.java (路徑結構為: com.HelloSpring.java )
並將下面代碼複製到 HelloSpring.java 中

 

七、建立 Bean  – 在 WEB-INF 底下建立名為  applicationContext-text.xml 檔案 

 

其中最關鍵的點在於

<?variable-resolver class=”org.zkoss.zkplus.spring.DelegatingVariableResolver”?>

若沒有加這行 apply 是無法利用EL表達式去 Marge 該對應的Controller 的
另外不加這行我們只能用 apply=”com.HelloSpring” 的方式去 Marge Controller
此外還有一個更嚴重的後果…apply不以 EL表達式Marge Controller 他是不會將你的 Class 注入Spring Bean 的Value的..

簡單的測試方法如下 請將 index.zul 改為

 

執行的結果 .. 是不會幫您把  applicationContext-text.xml  中 Bill Peng 的值填入 SayHello 變數中的

若不使用<?variable-resolver class=”org.zkoss.zkplus.spring.DelegatingVariableResolver”?>

您只能利用

SpringUtil.getBean(“helloSpring”);
或者
ServletContext sc = (ServletContext) Sessions.getCurrent().getWebApp().getNativeContext(); 

ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(sc); 

HelloBean helloBean = (HelloBean) ctx.getBean(“helloSpring”);
的方式拿取Spring Bean Variable
完整範例  Download

Leave a Reply

你的電子郵件位址並不會被公開。 必要欄位標記為 *