首先感謝羅明提供的無私幫助,很多天來一直沒有將OSGi的JSF應用問題解決,這兩天跟羅明在網上聊關於這方面的話題,給予了我不少的幫助,同時也使我的問題得到了解決。
這些日子沒有少在羅明的博客上晃悠,但總是讓人感覺這個家伙總喜歡“高手過招,點到為止”,這樣可能對於大多數對OSGi接觸不多的人來說,可能還是有些抽象,為了方便大家學習和使用OSGi,我決定自己寫一篇關於OSGi與JSF結合的例子,比較詳細的介紹如何實現一個OSGi與JSF結合的例子。
在OSGi與JSF結合的使用中,由於需要改寫一些由Equinox實現好的項目org.eclipse.equinox.JSP.jASPer的一些源碼,因此,操作起來似乎稍微要麻煩一些,Equinox上的項目基本上都是通過CVS來管理的,因此首先需要保證自己已經安裝了CVS客戶端,然後拉下代碼,為下面的工作做好准備。
先就將OSGI與JSF的結合使用例表如下:
1. 建立plugin工程:osgi.JSf.finals
2. 編寫頁面
◆index.JSP
- <%@taglib uri="http://Java.sun.com/JSf/core" prefix="f" %>
- <%@taglib uri="http://Java.sun.com/JSf/Html" prefix="h" %>
- <%@page contentType="text/Html;charset=UTF-8"%>
- <Html>
- <head>
- <title>JSF Samples</title>
- </head>
- <body>
- <f:vIEw>
- <h:form>
- <h:outputText style="color:red" value="#{user.errMsg}" />
- <h3>JSF Samples</h3>
- Nick Name: <h:inputText value="#{user.id}"/><p>
- <h:commandButton value="Submit" action="#{user.verify}"/>
- </h:form>
- </f:vIEw>
- </body>
- </Html>
◆welcome.JSP
- <%@ taglib uri="http://Java.sun.com/JSf/core" prefix="f" %>
- <%@ taglib uri="http://Java.sun.com/JSf/Html" prefix="h" %>
- <%@page contentType="text/Html;charset=UTF-8"%>
- <Html>
- <head>
- <title>JSF Samples</title>
- </head>
- <body>
- <f:vIEw>
- <h:outputText value="#{user.id}"/> Welcome!
- <h3>JavaServer Faces!</h3>
- </f:vIEw>
- </body>
- </Html>
3. 實現相應類UserBean.Java
- package org.danlley.JSf.beans;
- public class UserBean {
- private String id;
- private String pwd;
- private String errMsg;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getErrMsg() {
- return errMsg;
- }
- public void setErrMsg(String errMsg) {
- this.errMsg = errMsg;
- }
- public String getPwd() {
- return pwd;
- }
- public void setPwd(String pwd) {
- this.pwd = pwd;
- }
- public String verify() {
- if (id.equals("JSfUser")) {
- return "success";
- } else {
- setErrMsg("userID should be JSfUser");
- return "failed";
- }
- }
- }