我们仍然将分析处于service包中,首分析下上次没有分析的ForumArchiveService:(它只有一个方法) public interface ForumArchivesService {  public void createForumArchives() throws BbscsException; } 看applicationContext.xml中: <bean id="forumArchivesServiceTarget"   class="com.laoer.bbscs.service.imp.ForumA ...
由于BBSCS8是由数据库设计-bean/hbm.xml-DAO-Service-Web(作者laoer回答)这样的创建过程,因此分析这个系统最好是先查看数据库设计(见http://bbs.laoer.com/main-read-15-ff80808113baa8140113d201333e5274.html下载研究),而我的分析是由Service层开始引出讨论的,所以你需对论坛的常用功能有所体会,知道什么是投票贴,怎么样去用,还要有论坛后台管理使用过等等.如果不知道的话,请先在www.laoer.com处或在自己电脑上本地测试以便先对其功能进行体会,请注意!!! com.laoer.bbs ...
在分析三,我们已经分析出jsp页面如何通过struts2的标签与action配合,将数据在表示层传递(set/get),并且把主要的开始流程给分析完了。这里我们将前台的主要请求大致分析一下:从导航部分开始,对于社区首页in.bbscs我们已经讲过,它这里只不过是将框架的target=mainForm以便从任何位置转到首页!进入个人中心,点击修改签名,触发了signSet.bbscs: <action name="signSet" class="signSetAction">    <interceptor- ...
经过前面的分析,我们已经理清楚了业务层,接下来的部分将是web层部分.首先我们从web.xml开始,我们知 道任何一个java web应用系统都是从WEB-INF/web.xml启动的,根据servlet2.4规范filter执行是按照 web.xml配置的filter-mapping先后顺序进行执行,这里用了UrlRewriteFilter和字符编码过滤器 CharacterEncodingFilter(UTF-8),还有配置延迟加载时使用OpenSessionInView,可参考资料 http://www.javaeye.com/topic/32001;另外,还有struts-clearu ...
WebWork介绍   WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目,如下示意图所示:     Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – t ...
Action的单元测试   理解了ServletDispatcher,我们就明白了整个框架调用执行的顺序。Action虽然是与Web无关,可是它的创建、参数设置、执行与我们的WebWork、XWork紧密关联在一起,有我们的控制器ServletDispatcher去统一调度,那我们如何去对Action进行独立的单元测试呢?   请看下面的例子:使用单元测试框架JUnit对register.User. RegisterAction做单元测试   见example.register. RegisterActionTest类testExecuteWithProxyFactory()方法: ...
验证框架   WebWork提供了在Action执行之前,对输入数据的验证功能,它使用了其核心XWork的验证框架。提供了如下功能:   1、 可配置的验证文件。它的验证文件是一个独立的XML配置文件,对验证的添加、修改只需更改配置文件,无需编译任何的Class。   2、 验证文件和被验证的对象完全解藕。验证对象是普通的JavaBean就可以了(可以是FormBean、域对象等),它们不需实现任何额外的方法或继承额外的类。   3、 多种不同的验证方式。因为它验证功能是可以继承的,所以可以用多种不同的方式指定验证文件,比如:通过父类的Action、通过Action、通 ...
/** * 取得字符串的字节长度 */ 代码   function strlen(str) {  var i;  var len;    len = 0;  for (i=0;i<str.length;i++)  {   if (str.charCodeAt(i)>255) len+=2; else len++;  }  return len; }   /* * 判断是否为数字,是则返回true,否则返回false */ 代码   fun ...
sgwood
搜索本博客
存档
最新评论