亚洲第一精品电影网,国产精品亚洲精品日韩电影,亚洲综合校园春色http://www.tkk7.com/lizongbo/category/25370.htmlhttp://618119.comzh-cnSun, 28 Oct 2007 17:11:39 GMTSun, 28 Oct 2007 17:11:39 GMT60新注冊了個獨立域名,使用獨立的bloghttp://www.tkk7.com/lizongbo/archive/2007/10/16/153162.htmllizongbo 的編程學(xué)習(xí)lizongbo 的編程學(xué)習(xí)Tue, 16 Oct 2007 01:46:00 GMThttp://www.tkk7.com/lizongbo/archive/2007/10/16/153162.htmlhttp://www.tkk7.com/lizongbo/comments/153162.htmlhttp://www.tkk7.com/lizongbo/archive/2007/10/16/153162.html#Feedback0http://www.tkk7.com/lizongbo/comments/commentRss/153162.htmlhttp://www.tkk7.com/lizongbo/services/trackbacks/153162.html
http://618119.com

新的blog rss訂閱地址: http://feed.feedsky.com/lizongbo

從最早的 http://blog.csdn.net/lizongbo,

到 http://blog.donews.com/lizongbo

再到http://www.tkk7.com/lizongbo

現(xiàn)在終于擁有自己的域名和獨立的blog了。  閱讀全文

lizongbo 的編程學(xué)習(xí) 2007-10-16 09:46 發(fā)表評論
]]>
java版discuz開發(fā)步驟http://www.tkk7.com/lizongbo/archive/2007/08/29/140766.htmllizongbo 的編程學(xué)習(xí)lizongbo 的編程學(xué)習(xí)Wed, 29 Aug 2007 01:43:00 GMThttp://www.tkk7.com/lizongbo/archive/2007/08/29/140766.htmlhttp://www.tkk7.com/lizongbo/comments/140766.htmlhttp://www.tkk7.com/lizongbo/archive/2007/08/29/140766.html#Feedback0http://www.tkk7.com/lizongbo/comments/commentRss/140766.htmlhttp://www.tkk7.com/lizongbo/services/trackbacks/140766.html1.搭建php版運行環(huán)境,包括數(shù)據(jù)庫和discuz php版本的運行,用于觀察了解
2.搭建java web應(yīng)用基礎(chǔ)庫,
3.對沒有主鍵的標增加主鍵,用工具生成dao 層代碼.(注意jdbc的url里需要寫上charset)
4.生成logic層代碼
5.對應(yīng)每個控制層的php,轉(zhuǎn)換成對應(yīng)的spring mvc中的controller. 先從簡單的faq.php做起
action映射使用.php后綴.

視圖層使用jsp+jstl.

 


 



lizongbo 的編程學(xué)習(xí) 2007-08-29 09:43 發(fā)表評論
]]>
java discuz的開發(fā)筆記-模板代碼轉(zhuǎn)換http://www.tkk7.com/lizongbo/archive/2007/08/29/140764.htmllizongbo 的編程學(xué)習(xí)lizongbo 的編程學(xué)習(xí)Wed, 29 Aug 2007 01:42:00 GMThttp://www.tkk7.com/lizongbo/archive/2007/08/29/140764.htmlhttp://www.tkk7.com/lizongbo/comments/140764.htmlhttp://www.tkk7.com/lizongbo/archive/2007/08/29/140764.html#Feedback1http://www.tkk7.com/lizongbo/comments/commentRss/140764.htmlhttp://www.tkk7.com/lizongbo/services/trackbacks/140764.html由于原有模板是以.htm方式存在的,
在轉(zhuǎn)換成jsp方式時,對其中很多通用的代碼,可以通過替換的方式直接轉(zhuǎn)換為jstl語法的.
步驟如下:

1.首先將所有的htm文件名替換成jsp,
在命令行下運行 rename *.htm *.jsp即可.

2.將bbs\forumdata\cache\style_1.php中的css變量TABLEWIDTH等,
替換成類似${crtStyles['TABLEWIDTH']}的jstl語法.
全部只能手工替換

3.將*.jsp中的{lang forum_favorite}等替換成類似 <fmt:message key="faq" bundle="${forum_favorite}"/>
使用正則表達式進行替換:
editplus中的 查找內(nèi)容為: {lang (.+)},替換內(nèi)容為:<fmt:message key="faq" bundle="${\1}"/>
Jbuilder中的查找內(nèi)容為 \{lang (.+)\},Pattern為:Regular Expressions,
替換內(nèi)容為:(暫時未寫出來,打算寫程序進行替換操作)

用java程序替換的核心代碼為:

 //替換樣式變量
             content = content.replaceAll("FORMHASH", "formhash");
             //替換樣式變量 ${crtStyle['TABLEWIDTH']}
       content = content.replaceAll("\\{([A-Z0-9]+)\\}", "\\${crtStyle\\['$1'\\]}");
             //替換國際化定義
             //content = content.replaceAll("\\{lang (.+?)\\}",
             //                             "<fmt:message key=\"$1\" bundle=\"\\$\\{templates\\}\"/>");
             //對標簽屬性里的值暫時不替換
             content = content.replaceAll("([^\"])\\{lang (.+?)\\}",
       "$1<fmt:message key=\"$2\" bundle=\"\\$\\{templates\\}\"/>");

             //替換單層的屬性訪問
             content = content.replaceAll("\\$([a-z]+?)\\[([a-z]+?)\\]",
                                   "\\$\\{$1\\['$2'\\]\\}");
             //替換標題部分的聲明
             content = content.replaceAll("\\{template header\\}",
                                   "<%@page pageEncoding=\"UTF-8\" " +
                                   "contentType=\"text/html;" +
                                   " charset=UTF-8\"%>\n"
                                   + "<%@include file=\"/WEB-INF/" +
                                   "inc/taglibs.jspf\"%>\n" +
                                   "<jsp:include flush=\"true\" " +
                                   "page=\"header.jsp\"/>\n");
             ////替換底部部分的聲明
             content = content.replaceAll("\\{template footer\\}",
                                   "\n<jsp:include flush=\"true\" " +
                                   "page=\"footer.jsp\"/>");

             //替換其它引用聲明
             content = content.replaceAll("\\{template (.+?)\\}",
                                   "\n<jsp:include flush=\"true\" " +
                                   "page=\"$1.jsp\"/>");
             //替換url定義
       content = content.replaceAll("\\$indexname", "\\${settings.indexname}");
             //替換網(wǎng)站名字
             content = content.replaceAll("\\$bbname", "\\${settings.bbname}");
             //替換導(dǎo)航標簽
             content = content.replaceAll("\\$navigation", "\\${navigation}");
             //替換一些變量
             //content = content.replaceAll("\\$pid", "\\${pid}");
       content = content.replaceAll("\\$([a-z_]+)(\"|<|\\))", "\\${$1}$2");



lizongbo 的編程學(xué)習(xí) 2007-08-29 09:42 發(fā)表評論
]]>
java discuz的開發(fā)筆記-需要轉(zhuǎn)換實現(xiàn)機制的模塊http://www.tkk7.com/lizongbo/archive/2007/08/29/140763.htmllizongbo 的編程學(xué)習(xí)lizongbo 的編程學(xué)習(xí)Wed, 29 Aug 2007 01:41:00 GMThttp://www.tkk7.com/lizongbo/archive/2007/08/29/140763.htmlhttp://www.tkk7.com/lizongbo/comments/140763.htmlhttp://www.tkk7.com/lizongbo/archive/2007/08/29/140763.html#Feedback4http://www.tkk7.com/lizongbo/comments/commentRss/140763.htmlhttp://www.tkk7.com/lizongbo/services/trackbacks/140763.html
前言:discuz是一個很流行的 php論壇,一時好奇,打算學(xué)習(xí)并將其功能用java實現(xiàn)。
但是個人精力有限,只試著做了很小的一點功能。
但是在此過程中總結(jié)了一些經(jīng)驗:

需要轉(zhuǎn)換實現(xiàn)機制的模塊



1.計劃任務(wù)
由于php受語言限制,必須靠外界的訪問去觸發(fā)計劃任務(wù),而java則可以通過qutarz來做定時任務(wù).
因此可以采取spring配置 qutarz的方式去設(shè)置定時任務(wù).

2.風(fēng)格機制
使用.jsp,使用jstl語法,允許用戶寫jstl
依然按目錄存放到templates目錄下,每個風(fēng)格為一個文件夾.

3.緩存機制
使用oscache 標簽 來緩存頁面的方式.

4.特殊標簽的解析 hidden標簽,reply標簽
采取在顯示的時候,進行 jsp:include page="/tag/hidden.jsp" 這樣的方式來實現(xiàn).

5.日歷選擇框: 使用jscalendar

6.頁面gzip壓縮,使用專門的gzip過濾器.

7.全文檢索,使用compass.

8.視圖層的模板.
discuz 已經(jīng)使用了 mvc的模式,只是使用自己開發(fā)的模板技術(shù),
 D:\xampp\htdocs\bbs\templates每個文件夾為一個主題,每個主題內(nèi)對應(yīng)的是各種視圖的htm.
因此在用java實現(xiàn)的時候,使用spring mvc ,
視圖層使用jsp來展示.
其中頁面的布局分為三段
{template header} 是最上面的導(dǎo)航部分
{template footer} 是最下方的版權(quán)申明等部分.
中間部分為各具體模塊的視圖.
后臺則是使用的固定框架,然后來合成內(nèi)容的.

9.國際化支持
discuz使用的是 .lang.php定義數(shù)組的方式實現(xiàn)的,而且一次只支持一種語言
而java開發(fā)則使用I18N方式.多種語言均使用同一個系統(tǒng).

 

 1.php的array功能非常強大,而java中只能用map和list結(jié)合起來處理.
2.在一個http請求中php的變量幾乎都是全局生效,而jstl中,則可以放到requestScope中.

1.discuz的有些表的主鍵不是自動增長的,因此不能夠生成@GeneratedValue(strategy = GenerationType.AUTO)的注釋.
這些表有: new String[] {
      "validating", "trades", "relatedthreads", "pushedthreads", "polls",
      "onlinetime", "memberspaces", "memberfields", "forumfields",
      "admingroups", "adminactions", "activities"}

2.mysql的hibernate dao單元測試中,insert是無法回滾的,而delete卻可以不操作數(shù)據(jù)庫,
因此crud單元測試的時候,導(dǎo)致不停的插入數(shù)據(jù)卻沒有刪除數(shù)據(jù).
解決辦法,在 crud 測試方法的最后加上一行代碼:  this.setComplete();

3.mysql的jdbc需要幾個特殊設(shè)置
a.字符編碼集必須指定.
b.對于"0000-00-00" 這樣的默認日期,在轉(zhuǎn)化成java.sql.Date的時候會出錯,因此需要加上個zeroDateTimeBehavior屬性.

datasource.url=jdbc:mysql://localhost:3306/discuz?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull

4.mysql的jdbc驅(qū)動存在bug :  http://bugs.mysql.com/bug.php?id=22215

在usergroups 表中, readaccess字段是 tinyint(3)類型,而有值為200的,mysql的jdbc就會報錯,說數(shù)字越界了.

java.sql.SQLException: '200' in column '1' is outside valid range for the
datatype TINYINT.

暫時無解決辦法,采取修改200為20回避之.
(update:后來使用Short代替byte類型)
discuz 已經(jīng)使用了 mvc的模式,只是使用自己開發(fā)的模板技術(shù),
 D:\xampp\htdocs\bbs\templates每個文件夾為一個主題,每個主題內(nèi)對應(yīng)的是各種視圖的htm.

因此在用java實現(xiàn)的時候,使用spring mvc ,

視圖層使用jspx來展示.


其中頁面的布局分為三段

{template header} 是最上面的導(dǎo)航部分

{template footer} 是最下方的版權(quán)申明等部分.

中間部分為各具體模塊的視圖.

 

后臺則是使用的固定框架,然后來合成內(nèi)容的.



 



lizongbo 的編程學(xué)習(xí) 2007-08-29 09:41 發(fā)表評論
]]>
主站蜘蛛池模板: 一级做a爰片久久免费| 色偷偷亚洲第一综合| 十八禁视频在线观看免费无码无遮挡骂过| 国产在线a不卡免费视频| 亚洲综合一区国产精品| 成年性午夜免费视频网站不卡| 亚洲国产成人99精品激情在线| 97在线观免费视频观看 | 女人张开腿等男人桶免费视频| 亚洲男女性高爱潮网站| 美女视频黄的全免费视频网站| 亚洲av永久无码嘿嘿嘿| 日本一道本高清免费| 国产产在线精品亚洲AAVV| 亚洲va中文字幕无码| 免费久久人人爽人人爽av| 亚洲AV天天做在线观看| av无码免费一区二区三区| 亚洲国产乱码最新视频| 国产精品久久久久影院免费| 一级人做人爰a全过程免费视频| 亚洲精品你懂的在线观看| 在线免费观看亚洲| 亚洲国产午夜精品理论片在线播放| 国产一级淫片视频免费看| 亚欧洲精品在线视频免费观看| 国产AV无码专区亚洲精品| 最近最新MV在线观看免费高清| 特级毛片免费播放| 久久久久亚洲av无码专区蜜芽| 黄瓜视频影院在线观看免费| 一级做a爰片久久免费| 亚洲日本乱码一区二区在线二产线 | 亚洲Aⅴ无码一区二区二三区软件| 一个人看的免费高清视频日本| 亚洲av无码一区二区三区乱子伦| 91免费国产自产地址入| 鲁啊鲁在线视频免费播放| 亚洲avav天堂av在线不卡| 在线不卡免费视频| 国产无遮挡无码视频免费软件|