Jforum安裝使用指南

佚名發表於2015-11-03

Jforum Jforum安裝教程 Jforum安裝 Jforum二級開發

離線環境搭建:TOMCAT + MySQL

第一步:安裝部署

1、 去http://www.jforum.net/download.jsp網站下載jforum的釋出包。

2、 安裝mysql資料庫。為了解決論壇出現的中文亂碼問題,可以透過手動修改配置檔案或者在安裝mysql時設定編碼為utf8,

可以避免頁面中顯示亂碼。安裝好mysql後,進入>mysql狀態輸入:CREATE DATABASE JForum DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3、 將jforum釋出包複製到D:/apache-tomcat-6.0.16/webapps目錄下即可。安裝配置jforum可以透過兩種方式實現,手動修改配置檔案 或者透過頁面提示資訊安裝步驟。為避免出錯,我們選取自動安裝的方式進行。

啟動TOMCAT服務後,透過瀏覽器訪問http://localhost:8080/jforum/install.jsp依照提示資訊配置好所需資訊,一路next。安裝完成之後訪問http://localhost:8080/jforum將會出現論壇首頁。

第二步:分析JFORUM框架中配置檔案

1、 zh_CN.properties檔案中配置頁面中顯示的中文常用漢字。cmd下可以透過native2ascii -reverse zh_CN.properties a.properties命令對其反編碼,開發者可以配置自己需要的頁面中需要顯示常量資訊,編輯儲存後再透過native2ascii a.properties zh_CN.properties 在編碼回ascii。

2、 modulesMapping.properties檔案中描述了模組名與實現該模組功能的java類的對應關係。

3、 locales.properties檔案在SystemGlobals.properties檔案中被配置載入,locales.properties 檔案中配置各種國家支援的語言。locales.properties檔案在ConfigAction.java中被讀取。

4、 webapps/jforum/WEB-INF/config/database/generic/generic_queries.sql 檔案中配置資料庫查詢語句而該sql檔案又在SystemGlobals.properties檔案中被配置載入。

SystemGlobals.properties檔案中配置的變數資訊在ConfigKeys.java類檔案中配置對應的常量字串。可以透過 String q = SystemGlobals.getSql(”XXX”)方式去獲得需要的配置好的sql語句。I18n.getMessage(”XXX”)方式可以在 頁面中或者類中獲得zh_CN.properties配置檔案中配置的中文常量

5、 templatesMapping.properties配置檔案配置相關的頁面對應檔案。templatesMapping.properties檔案中配置的變數資訊在TemplateKeys.java類檔案中配置對應的常量字串。

6、 jforum-custom.conf配置檔案為有關資料庫資訊的檔案,可以透過手動去修改,該檔案為透過自動方式安裝配置jforum時產生。

7、 urlPattern.properties配置檔案為相關的action配置引數。

第三步:開發常用的包說明

1、 net.jforum.view.admin目錄和net.jforum.view.forum目錄下為存放的action檔案,action檔案中去呼叫dao介面對應的方法。

2、 net.jforum.dao目錄下檔案為資料庫操作介面類檔案。

3、 net.jforum.dao.generic目錄下檔案為與資料庫互動的類檔案,即介面的具體實現。

4、 net.jforum.util.preferences目錄下的檔案為比較重要的幾個常量配置類以及配置檔案讀取類。

5、 net.jforum.entities目錄下檔案為論壇中各個物件實體。

第四步:重要的類說明

1、 ConfigLoader.java 類檔案載入各個配置檔案。

2、 ConfigKeys.java類檔案中配置SystemGlobals.properties檔案中配置的變數資訊

3、 TemplateKeys.java類檔案中配置templatesMapping.properties檔案中對應的頁面資訊 action中呼叫時透過this.setTemplateName(XX)去實現跳轉,透過this.context.put(”message”, message)方式實現向頁面set物件資訊供頁面呼叫。

4、 SystemGlobals.java類檔案為一個讀取相關配置檔案獲得相關配置資訊的幫助類。

5、 DataAccessDriver.java類檔案為建立dao實體的一個抽象類,透過XXXDAO um = DataAccessDriver.getInstance().newXXXDAO()方式去例項化dao物件。

6、 GenericDataAccessDriver.java類檔案為DataAccessDriver抽象類檔案的具體實現類,建立DAO物件的類與資料庫進行互動。

7、 JForumExecutionContext.getConnection().prepareStatement(String sql) 透過此種方式在DAO中去建立PreparedStatement物件。然後由該物件執行資料庫操作獲得結果。

第五步:測試DEMO

1、 透過修改配置檔案modulesMapping.properties類新增一個模組。可以新增一個自己的測試DEMO模組,在該配置檔案末尾新增如下程式碼myTest=net.jforum.test.MyTestAction 。作為該模組的處理類。

2. 在templatesMapping.properties檔案中新增: myTest.addTest = myTest_add.htm myTest.listTest = myTest_list.htm 此檔案對映action和result 模板的關係,表明執行後跳轉的頁面對應關係。

3. 在urlPattern.properties中新增: myTest.add.0 = myTest.list.0 = 此檔案設定每個action引數.我們這action無引數。

4. 修改net.jforum.util.preferences.TemplateKeys 類,新增: public static final String MYTEST_ADD = “myTest.add”; public static final String MYTEST_LIST = “myTest.list”; 引號裡面的對應的字串常量要與templatesMapping.

properties檔案中定義對應頁面的屬性保持一致性。透過定義該資訊,可以在action中去set其對應的跳轉頁面資訊。

5. 參照第二步第1條提示修改a.properties檔案後,編輯儲存後再透過native2ascii a.properties zh_CN.properties 在編碼回ascii檔案格式。

6、 編輯header.htm頁面新增如下程式碼,新增“我的測試”超級連線

  • <img src=”${contextPath}/templates/${templateName}/images/icon_mini_members.gif” alt=”[Members]” />
  • <a id=”latest2″ class=”mainmenu” href=”${JForumContext.encodeURL
  • (”/myTest/addList”)}”>${I18n.getMessage(”myTest”)}
  • </a>

7、 上面部分為測試demo跳轉正常的測試,如果要與資料庫進行互動,需要在另行參照如下步驟進行:

a)、資料庫中增加一張測試表供測試使用。

b)、修改zh_CN.properties新增需要在頁面顯示的測試表欄位中文資訊。(步驟略)

c)、在net.jforum.dao目錄下增加一測試類DAO介面檔案TestDAO.java 以及net.jforum.dao.generic目錄下的測試介面實現類GenericTestDAO.java 內部實現該測試物件的一系列與資料庫互動的方法。

d)、在net.jforum.entities目錄下增加測試試題物件的javabean檔案。

e)、在WEB-INF/config/database/generic/generic_queries.sql檔案中增加有關測試實體資料庫互動的資料庫指令碼。

f)、完善MyTestAction.java 類檔案中的list方法。內部實現與之對應的查詢方法,並將結果物件返回到頁面。

PS:如果用的是Oracle資料庫 只要修改jforum-custom.conf 貼一份oracle的配置:

  • #Installation specific configuration options
  • #Mon Mar 12 12:54:53 CST 2007
  • dao.driver=net.jforum.dao.oracle.OracleDataAccessDriver
  • database.connection.dbname=zjport
  • database.connection.driver=oracle.jdbc.OracleDriver
  • database.connection.host=192.168.180.25
  • database.connection.implementation=net.jforum.PooledConnection
  • database.connection.password=action
  • database.connection.pool.max=50
  • database.connection.pool.min=5
  • database.connection.pool.timeout=120
  • database.connection.port=1521
  • database.connection.string=${database.connection.string_thin}
  • database.connection.string_local=jdbc/:oracle/:oci/:${database.connection.username}/${database.connection.password}@${database.connection.dbname}
  • database.connection.string_thin=jdbc/:oracle/:thin/:${database.connection.username}/${database.connection.password}@${database.connection.host}/:${database.connection.port}/:${database.connection.dbname}
  • database.connection.username=operation
  • database.driver.name=oracle
  • database.support.autokeys=false
  • database.support.subqueries=true
  • dbencoding=utf-8
  • forum.link=http/://localhost/:8080/JForum.T/
  • homepage.link=http/://localhost/:8080
  • i18n.board.default=zh_CN
  • installed=true
  • search.indexing.enabled=true
  • user.hash.sequence=348032218c3b45d92e8075662f8b1614

相關文章