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
發佈了45 篇原創文章 · 獲贊 0 · 訪問量 2408
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章