JBuilder2005 Struts深度体验之升级

  用Action控制器替换switch.jsp

  在《JBuilder 2005 Servlet高级开发》中我们介绍了用户登录模块的流程,其中switch.jsp充当一个业务处理和页面转发的中心处理器。由于JSP的设计初衷是实现页面展现逻辑,而这里我们居然"倒行逆施",将JSP用作业务处理和页面转发,显然是不恰当的。我们原来的switch.jsp身兼数职:接收login.jsp页面的表单数据,查询数据库,转发页面,象一个事无巨细,有僭越之嫌的 "管家"总揽了所有的事情,程序没有分层,逻辑显得非常不清晰,象个大杂烩。

  其实Servlet本身倒是比较适合开发switch.jsp所完成的功能,但在《JBuilder 2005 Servlet高级开发》专题中,我们并没有用Servlet斧正之,是因为我们希望在本专题中从更高的角度更完美地替换switch.jsp。

  可以通过Struts框架对switch.jsp功能进行分解,switch.jsp通过<jsp:useBean>获取登录页面表单数据可以通过ActionForm机制实现;switch.jsp查询T_USER数据表,判断用户是否是合法用户可以在Action的execute()中处理;当未通过验证转向fail.jsp页面,如果发生异常转向error.jsp页面,当用户通过验证后转向welcome.jsp页面,可以在Action中通过ActionForward实现多出口切换。

  新增一个图书管理模块

  现实的图书管理模块,应该包括对图书进行增、删、改、查的功能,由于篇幅所限,我们仅提供图书新增的功能。数据库中必须提供一张表用于保存图书的信息,这张表名为T_BOOK,其结构如图 4所示:


图 4 T_BOOK表结构

  我们完全用Struts框架实现图书新增的功能,JBuilder 提供了一个优秀的Struts可视化设计工具(Struts Config Editor),其中Action Designer能够非常形象地描述出一个业务功能操作流程,我们不妨就通过这个可视化设计器预览图书新增业务的程序结构,如图 5所示:


图 5 新增图书Struts流程
  ·bookAdd.jsp:图书录入的界面,在这儿你将学习到Struts标签和资源文件的知识。

  ·bookActionForm:由BookActionForm类实现,保存bookAdd.jsp表单提交的数据。在这儿,你将学习到如何创建ActionForm,ActionForm如何对数据有效性进行自检的知识。

  ·/bookInsertAction:由BookInsertAction类实现,即业务控制器,负责将bookActionForm中的新增图书保存到数据库T_BOOK表中,并导向到insertSuccess.htm页面。

  事前准备

  通过File->New Project...创建一个名为bookStore的新工程,并在工程下创建名为webModule的Web模块,将原《JBuilder 2005 Servlet高级开发》专题的代码覆盖该新工程对应的内容。

  用SQL Plus运行下面的SQL语句创建T_BOOK表:

  代码清单 5 创建T_BOOK表的SQL语句

1. create table T_BOOK (
2. BOOK_ID VARCHAR2(10) not null,
3. ISBN VARCHAR2(20) not null,
4. BOOK_NAME VARCHAR2(50) not null,
5. AUTHOR VARCHAR2(50),
6. CREATE_DATE CHAR(8),
7. constraint PK_T_BOOK primary key (BOOK_ID)
8. );

  从这个SQL中,我们可以看出BOOK_ID是表的主键,所以不允许重复,而ISBN和BOOK_NAME两字段不允许为空。它们决定了在图书添加时的数据检验规则。

  同样的,我们需要将必要的类添加到这个新工程的类库中。

时间: 2024-09-13 21:39:39

JBuilder2005 Struts深度体验之升级的相关文章

JBuilder2005 Struts深度体验之概述

Struts是基于Model 2实现的技术框架,Model 2是经典的MVC(Model,View,Control)模型的Web应用变体,这个改变主要由于HTTP协议的无状态性引起的.Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到不同层间松散耦合的效果,提高系统灵活性.复用性和可维护性.在多数情况下,你可以将Model 2与MVC等同起来. 图 1表示一个基于Java技术典型的MVC网络应用,从中可以看出MVC中的各个部分对应于J2EE哪些实现技术. 图 1 MVC和J2

JBuilder2005 Struts深度体验之新增

新增一个Struts配置文件 考虑到图书模块是一个比较独立的模块,为了避免对Struts配置文件的资源争用导致团队工程的覆盖或冲突,我们为这个模块单独提供一个新的Struts配置文件,用这个配置文件配置图书模块所有Struts关联的信息. 我们按照如下的方式为webModule模块添加一个名为book-struts-config.xml的配置文件. 首先到<工程目录>/webModule/WEB-INF拷贝一个原有的struts-config.xml文件,更名为book-struts-conf

JBuilder2005 Struts深度体验之改造

用ActionForm截获登录表单数据 原登录模块用bookstore.User描述login.jsp登录页面表单的数据,在switch.jsp程序中通过<jsp:useBean>标签获取login.jsp表单的数据.其实User类相当于Struts框架中的模型,我们将通过一个ActionForm更好地实现这个功能. ActionForm和Bean一样以属性名匹配的映射机制从HTTP请求中填充对象数据,但ActionForm比一般的Bean提供了更多的功能,Struts允许ActionForm

JBuilder 2005 Struts深度体验之升级

用Action控制器替换switch.jsp 在<JBuilder 2005 Servlet高级开发>中我们介绍了用户登录模块的流程,其中switch.jsp充当一个业务处理和页面转发的中心处理器.由于JSP的设计初衷是实现页面展现逻辑,而这里我们居然"倒行逆施",将JSP用作业务处理和页面转发,显然是不恰当的.我们原来的switch.jsp身兼数职:接收login.jsp页面的表单数据,查询数据库,转发页面,象一个事无巨细,有僭越之嫌的 "管家"总揽了

JBuilder 2005 Struts深度体验之新增

新增一个Struts配置文件 考虑到图书模块是一个比较独立的模块,为了避免对Struts配置文件的资源争用导致团队工程的覆盖或冲突,我们为这个模块单独提供一个新的Struts配置文件,用这个配置文件配置图书模块所有Struts关联的信息. 我们按照如下的方式为webModule模块添加一个名为book-struts-config.xml的配置文件. 首先到<工程目录>/webModule/WEB-INF拷贝一个原有的struts-config.xml文件,更名为book-struts-conf

JBuilder 2005 Struts深度体验之概述

Struts是基于Model 2实现的技术框架,Model 2是经典的MVC(Model,View,Control)模型的Web应用变体,这个改变主要由于HTTP协议的无状态性引起的.Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到不同层间松散耦合的效果,提高系统灵活性.复用性和可维护性.在多数情况下,你可以将Model 2与MVC等同起来. 图 1表示一个基于Java技术典型的MVC网络应用,从中可以看出MVC中的各个部分对应于J2EE哪些实现技术. 图 1 MVC和J2

JBuilder 2005 Struts深度体验之改造

用ActionForm截获登录表单数据 原登录模块用bookstore.User描述login.jsp登录页面表单的数据,在switch.jsp程序中通过<jsp:useBean>标签获取login.jsp表单的数据.其实User类相当于Struts框架中的模型,我们将通过一个ActionForm更好地实现这个功能. ActionForm和Bean一样以属性名匹配的映射机制从HTTP请求中填充对象数据,但ActionForm比一般的Bean提供了更多的功能,Struts允许ActionForm

Justep X5深度体验及点评

问题描述 一周前,参加了Justep起步公司的X5免费培训,一共三天时间,也算是深度体验了.写几条看法出来,分享给各位.估计各位大侠也懒得看长篇大论,所以我多贴图,有图有真相嘛.我也偷个懒,有几幅贴图就直接用培训材料里的了.细节懒得写了,就写结论吧:第一.复杂业务的支持能力没问题从培训中提供的一些应用案例看,是可以做出很复杂的基于web的业务系统的.国内不少平台产品,做做OA勉强可以,一遇到复杂的业务系统就歇菜了.我认为这一点是必须的,无论如何,企业信息系统不是玩具.//随便贴几个X5的应用界面

最近的百度有在搞什么用户体验的升级调整

不需要说太多,最近的百度有在搞什么用户体验的升级调整,弄得站长们是忙里忙外,SEOer们也是丈二的和尚摸不着头脑啊! 其实仔细想一想,百度今年已经不只一次这样伤害我们广大的站长和SEO人员了,先是打击没有实质内容的网站,接着就是大面积的K站,然后因为360搜索的加入,再次将搜索数据洗牌,而之中就出现了人工干预排名的现象,当然这主要是针对做SEO一类的网站与博客. 不知不觉三四个月就过去了,百度依然没有停下,就在近几天的时间里,百度推出了Web APP,泪雪我也在上周写了一下,不过在这里泪雪很火的