﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-lizongbo 的 编程学习-随笔分类-java discuz</title><link>http://www.blogjava.net/lizongbo/category/25370.html</link><description>http://618119.com</description><language>zh-cn</language><lastBuildDate>Sun, 28 Oct 2007 17:11:39 GMT</lastBuildDate><pubDate>Sun, 28 Oct 2007 17:11:39 GMT</pubDate><ttl>60</ttl><item><title>新注册了个独立域名，使用独立的blog</title><link>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Tue, 16 Oct 2007 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/153162.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/153162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/153162.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 新注册了个独立域名，使用独立的blog了。<br><br>http://618119.com<br><br>新的blog rss订阅地址： http://feed.feedsky.com/lizongbo<br><br>从最早的 http://blog.csdn.net/lizongbo,<br><br>到 http://blog.donews.com/lizongbo<br><br>再到http://www.blogjava.net/lizongbo<br><br>现在终于拥有自己的域名和独立的blog了。&nbsp;&nbsp;<a href='http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html'>阅读全文</a><img src ="http://www.blogjava.net/lizongbo/aggbug/153162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-10-16 09:46 <a href="http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java版discuz开发步骤</title><link>http://www.blogjava.net/lizongbo/archive/2007/08/29/140766.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 29 Aug 2007 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/08/29/140766.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/140766.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/08/29/140766.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/140766.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/140766.html</trackback:ping><description><![CDATA[<p>1.搭建php版运行环境,包括数据库和discuz php版本的运行,用于观察了解<br>2.搭建java web应用基础库,<br>3.对没有主键的标增加主键,用工具生成dao 层代码.(注意jdbc的url里需要写上charset)<br>4.生成logic层代码<br>5.对应每个控制层的php,转换成对应的spring mvc中的controller. 先从简单的faq.php做起<br>action映射使用.php后缀.</p>
<p>视图层使用jsp+jstl.</p>
<p>&nbsp;</p>
<p><br>&nbsp;</p>
<img src ="http://www.blogjava.net/lizongbo/aggbug/140766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-08-29 09:43 <a href="http://www.blogjava.net/lizongbo/archive/2007/08/29/140766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java discuz的开发笔记-模板代码转换</title><link>http://www.blogjava.net/lizongbo/archive/2007/08/29/140764.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 29 Aug 2007 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/08/29/140764.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/140764.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/08/29/140764.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/140764.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/140764.html</trackback:ping><description><![CDATA[<p>由于原有模板是以.htm方式存在的,<br>在转换成jsp方式时,对其中很多通用的代码,可以通过替换的方式直接转换为jstl语法的.<br>步骤如下:</p>
<p>1.首先将所有的htm文件名替换成jsp,<br>在命令行下运行 rename *.htm *.jsp即可.</p>
<p>2.将bbs\forumdata\cache\style_1.php中的css变量TABLEWIDTH等,<br>替换成类似${crtStyles['TABLEWIDTH']}的jstl语法.<br>全部只能手工替换</p>
<p>3.将*.jsp中的{lang forum_favorite}等替换成类似 &lt;fmt:message key="faq" bundle="${forum_favorite}"/&gt;<br>使用正则表达式进行替换:<br>editplus中的 查找内容为: {lang (.+)},替换内容为:&lt;fmt:message key="faq" bundle="${\1}"/&gt;<br>Jbuilder中的查找内容为 \{lang (.+)\},Pattern为:Regular Expressions,<br>替换内容为:(暂时未写出来,打算写程序进行替换操作)</p>
<p>用java程序替换的核心代码为:</p>
<p>&nbsp;//替换样式变量<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("FORMHASH", "formhash");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换样式变量 ${crtStyle['TABLEWIDTH']}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://%7B(%5BA-Z0-9%5D+)//">\\{([A-Z0-9]+)\\</a>}", "<a href="file://$%7BcrtStyle//%5B'$1'//">\\${crtStyle\\['$1'\\</a>]}");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换国际化定义<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //content = content.replaceAll("<a href="file://%7Blang/">\\{lang</a> (.+?)\\}",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;fmt:message key=\"$1\" bundle=\"<a href="file://$//%7Btemplates//%7D/%22/">\\$\\{templates\\}\"/</a>&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //对标签属性里的值暂时不替换<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("([^\"])\\{lang (.+?)\\}",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "$1&lt;fmt:message key=\"$2\" bundle=\"<a href="file://$//%7Btemplates//%7D/%22/">\\$\\{templates\\}\"/</a>&gt;");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换单层的属性访问<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://$(%5Ba-z%5D+%3F)//%5B(%5Ba-z%5D+?)//">\\$([a-z]+?)\\[([a-z]+?)\\</a>]",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "<a href="file://$//%7B$1//%5B'$2'//%5D//">\\$\\{$1\\['$2'\\]\\</a>}");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换标题部分的声明<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://%7Btemplate/">\\{template</a> header\\}",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#64;&#112;&#97;&#103;&#101;">%@page</a> pageEncoding=\"UTF-8\" " +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "contentType=\"text/html;" +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " charset=UTF-8\"%&gt;\n"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + "&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#64;&#105;&#110;&#99;&#108;&#117;&#100;&#101;">%@include</a> file=\"/WEB-INF/" +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "inc/taglibs.jspf\"%&gt;\n" +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;jsp:include flush=\"true\" " +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "page=\"header.jsp\"/&gt;\n");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ////替换底部部分的声明<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://%7Btemplate/">\\{template</a> footer\\}",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\n&lt;jsp:include flush=\"true\" " +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "page=\"footer.jsp\"/&gt;");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换其它引用声明<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://%7Btemplate/">\\{template</a> (.+?)\\}",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\n&lt;jsp:include flush=\"true\" " +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "page=\"$1.jsp\"/&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换url定义<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://$indexname/">\\$indexname</a>", "<a href="file://$%7Bsettings.indexname/">\\${settings.indexname</a>}");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换网站名字<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://$bbname/">\\$bbname</a>", "<a href="file://$%7Bsettings.bbname/">\\${settings.bbname</a>}");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换导航标签<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://$navigation/">\\$navigation</a>", "<a href="file://$%7Bnavigation/">\\${navigation</a>}");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //替换一些变量<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //content = content.replaceAll("<a href="file://$pid/">\\$pid</a>", "<a href="file://$%7Bpid/">\\${pid</a>}");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content = content.replaceAll("<a href="file://$(%5Ba-z_%5D+)(/%22%7C%3C%7C//">\\$([a-z_]+)(\"|&lt;|\\</a>))", "<a href="file://$%7B$1%7D$2/">\\${$1}$2</a>");<br></p>
<img src ="http://www.blogjava.net/lizongbo/aggbug/140764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-08-29 09:42 <a href="http://www.blogjava.net/lizongbo/archive/2007/08/29/140764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java discuz的开发笔记-需要转换实现机制的模块</title><link>http://www.blogjava.net/lizongbo/archive/2007/08/29/140763.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 29 Aug 2007 01:41:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/08/29/140763.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/140763.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/08/29/140763.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/140763.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/140763.html</trackback:ping><description><![CDATA[<p><br>前言：discuz是一个很流行的 php论坛，一时好奇，打算学习并将其功能用java实现。<br>但是个人精力有限，只试着做了很小的一点功能。<br>但是在此过程中总结了一些经验：<br><br>需要转换实现机制的模块<br><br><br><br>1.计划任务<br>由于php受语言限制,必须靠外界的访问去触发计划任务,而java则可以通过qutarz来做定时任务.<br>因此可以采取spring配置 qutarz的方式去设置定时任务.</p>
<p>2.风格机制<br>使用.jsp,使用jstl语法,允许用户写jstl<br>依然按目录存放到templates目录下,每个风格为一个文件夹.</p>
<p>3.缓存机制<br>使用oscache 标签 来缓存页面的方式.</p>
<p>4.特殊标签的解析 hidden标签,reply标签<br>采取在显示的时候,进行 jsp:include page="/tag/hidden.jsp" 这样的方式来实现.</p>
<p>5.日历选择框: 使用jscalendar</p>
<p>6.页面gzip压缩,使用专门的gzip过滤器.</p>
<p>7.全文检索,使用compass.</p>
<p>8.视图层的模板.<br>discuz 已经使用了 mvc的模式,只是使用自己开发的模板技术,<br>&nbsp;D:\xampp\htdocs\bbs\templates每个文件夹为一个主题,每个主题内对应的是各种视图的htm.<br>因此在用java实现的时候,使用spring mvc ,<br>视图层使用jsp来展示.<br>其中页面的布局分为三段<br>{template header} 是最上面的导航部分<br>{template footer} 是最下方的版权申明等部分.<br>中间部分为各具体模块的视图.<br>后台则是使用的固定框架,然后来合成内容的.</p>
<p>9.国际化支持<br>discuz使用的是 .lang.php定义数组的方式实现的,而且一次只支持一种语言<br>而java开发则使用I18N方式.多种语言均使用同一个系统.</p>
<p>&nbsp;</p>
<p>&nbsp;1.php的array功能非常强大,而java中只能用map和list结合起来处理.<br>2.在一个http请求中php的变量几乎都是全局生效,而jstl中,则可以放到requestScope中.</p>
<p>1.discuz的有些表的主键不是自动增长的,因此不能够生成@GeneratedValue(strategy = GenerationType.AUTO)的注释.<br>这些表有: new String[] {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "validating", "trades", "relatedthreads", "pushedthreads", "polls",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "onlinetime", "memberspaces", "memberfields", "forumfields",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "admingroups", "adminactions", "activities"}</p>
<p>2.mysql的hibernate dao单元测试中,insert是无法回滚的,而delete却可以不操作数据库,<br>因此crud单元测试的时候,导致不停的插入数据却没有删除数据.<br>解决办法,在 crud 测试方法的最后加上一行代码:&nbsp; this.setComplete();</p>
<p>3.mysql的jdbc需要几个特殊设置<br>a.字符编码集必须指定.<br>b.对于"0000-00-00" 这样的默认日期,在转化成java.sql.Date的时候会出错,因此需要加上个zeroDateTimeBehavior属性.</p>
<p>datasource.url=jdbc:mysql://localhost:3306/discuz?useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull</p>
<p>4.mysql的jdbc驱动存在bug :&nbsp; <a href="http://bugs.mysql.com/bug.php?id=22215">http://bugs.mysql.com/bug.php?id=22215</a></p>
<p>在usergroups 表中, readaccess字段是 tinyint(3)类型,而有值为200的,mysql的jdbc就会报错,说数字越界了.</p>
<p>java.sql.SQLException: '200' in column '1' is outside valid range for the<br>datatype TINYINT.</p>
<p>暂时无解决办法,采取修改200为20回避之.<br>(update:后来使用Short代替byte类型)<br>discuz 已经使用了 mvc的模式,只是使用自己开发的模板技术,<br>&nbsp;D:\xampp\htdocs\bbs\templates每个文件夹为一个主题,每个主题内对应的是各种视图的htm.</p>
<p>因此在用java实现的时候,使用spring mvc ,</p>
<p>视图层使用jspx来展示.</p>
<p><br>其中页面的布局分为三段</p>
<p>{template header} 是最上面的导航部分</p>
<p>{template footer} 是最下方的版权申明等部分.</p>
<p>中间部分为各具体模块的视图.</p>
<p>&nbsp;</p>
<p>后台则是使用的固定框架,然后来合成内容的.<br><br><br></p>
<p><br>&nbsp;</p>
<img src ="http://www.blogjava.net/lizongbo/aggbug/140763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-08-29 09:41 <a href="http://www.blogjava.net/lizongbo/archive/2007/08/29/140763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>