网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 开源技术 > Spring > 基于Spring例子的JPetStore分析  

基于Spring例子的JPetStore分析

2005-12-03  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  这几天一直在学习JPetStore这个基与轻量级j2EE架构的宠物电子商务网站,下面来分析一下基于Struts+Spring+Ibatis架构的用户管理模块.
  
  首先分析一下jpetstore的用户登录界面,看struts-config.xml文件,
  
  用户信息Bean,用户信息Bean为AccountActionForm配置两个不同的实例。accountForm用户存放用户登录信息。workingAccountForm用于用户注册,以及账号修改时存放信息。
  
  <form-beans>
  <!--存放用户登陆的账号信息-->
  <form-bean name="accountForm" type="org.springframework.samples.jpetstore.web.struts.AccountActionForm"/>
  <form-bean name="cartForm" type="org.springframework.samples.jpetstore.web.struts.CartActionForm"/>
  <form-bean name="emptyForm" type="org.springframework.samples.jpetstore.web.struts.BaseActionForm"/>
  <!--用于用户注册和个人资料修改时存放用户信息-->
  <form-bean name="workingAccountForm" type="org.springframework.samples.jpetstore.web.struts.AccountActionForm"/>
  <form-bean name="workingOrderForm" type="org.springframework.samples.jpetstore.web.struts.OrderActionForm"/>

网管联盟bitsCN@com


  </form-beans>
  
  1.使用已有帐号登陆
  
  <action path="/shop/signonForm" type="org.springframework.samples.jpetstore.web.struts.DoNothingAction"
  validate="false">
  <forward name="success" path="/WEB-INF/jsp/struts/SignonForm.jsp"/>
  </action>
  
  <action path="/shop/signon" type="org.springframework.samples.jpetstore.web.struts.SignonAction"
  name="accountForm" scope="session" validate="false">
  <forward name="success" path="/shop/index.do"/>
  </action>
  
  <!-- 用户点击登陆,系统调用 shop/signonForm 直接将用户的登陆请求,转向到SignonForm.jsp页面(登陆界面),输入用户名,密码,点击登录,系统将调用 shop/signon Action来处理用户登录请求,如果登陆失败,页面返回到SignonForm.jsp页面(登陆界面),登陆成功,shop/signon 转到主页面shop/index.do。--〉
  
  2.创建新帐号
  
  <!-- 如果用户在当前登录页面(SigonForm.jsp)中选择“创建新帐号”,系统将调用“shop/newAccountForm”在NewAccountFormAction 的execute中为httpsession创建AccountActionForm用户存放用户的注册信息,然后转向到用户注册界面NewAccountForm.jsp -->

网管联盟bitsCN@com


  
  <action path="/shop/newAccountForm" type="org.springframework.samples.jpetstore.web.struts.NewAccountFormAction"
  name="workingAccountForm" scope="session" validate="false">
  <forward name="success" path="/WEB-INF/jsp/struts/NewAccountForm.jsp"/>
  </action>
  
  <!--用户在填写完注册信息以后,注册,系统调用“NewAccountAction”,如果注册失败,返回注册界面,系统将显示注册的错误信息,如果注册成功,系统自动转向到主页面。-->
  <action path="/shop/newAccount" type="org.springframework.samples.jpetstore.web.struts.NewAccountAction"
  name="workingAccountForm" scope="session" validate="true" input="/WEB-INF/jsp/struts/NewAccountForm.jsp">
  <forward name="success" path="/shop/index.do"/>
  </action>
  
  3.编辑账号
  
  <!-- 当用户点击修改用户信息的时候,系统调用editAccountForm 为账号的修改做一些必要的准备,然后定向到账号修改页面EditAccountForm.jsp,用户输入修改,点击提交,系统调用shop/editAccount检查修改资料是否合法,如果没有错误,确认修改,转到主页面,若有错误,转到账号修改界面->
网管bitscn_com

  
  <action path="/shop/editAccountForm" type="org.springframework.samples.jpetstore.web.struts.EditAccountFormAction"
  name="workingAccountForm" scope="session" validate="false">
  <forward name="success" path="/WEB-INF/jsp/struts/EditAccountForm.jsp"/>
  </action>
  
  <action path="/shop/editAccount" type="org.springframework.samples.jpetstore.web.struts.EditAccountAction"
  name="workingAccountForm" scope="session" validate="true" input="/WEB-INF/jsp/struts/EditAccountForm.jsp">
  <forward name="success" path="/shop/index.do"/>
  </action>
  
  个人分析:
  
  从jpetsore的账号管理的源代码来看,有以下几个值得我们注意的地方(目前对struts还不是很熟悉):
  
  1.AccountActionForm封装了账号Account,不知道是不是这个原因,需要在转入创建账号页面,或者是修改账号页面的情况下,在action的doExecute执行中都创建了AccountActionForm实例,并对其进行了初始化,并把它加入了httpsession中。
  
  2.系统用BaseActionForm继承了ActionFrom ,使用BaseAction继承了Action,同时把这两个子类替代了其父类在系统中的作用,所余的from和action都是从这两个派生类派生出来的。BaseActionFrom提供了方便的字段校验,而BaseAction加入了
网管u家u.bitsCN.com

  
  public void setServlet(ActionServlet actionServlet) {
  super.setServlet(actionServlet);
  if (actionServlet != null) {
  ServletContext servletContext = actionServlet.getServletContext();
  WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
  this.petStore = (PetStoreFacade) wac.getBean("petStore");
  }
  
  很好的和spring衔接在了一起,获得了系统的业务逻辑对象

TAGs例子   基于   type   系统   信息   修改   页面   账号   登陆    
 上一篇:用Spring、Hibernate和JBoss简易步骤   下一篇:用 spring 实现观察者设计模式
相关文章列表
基于Spring例子的JPetStore分析 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.详细的 spring 入门实例讲解运用
2.spring+hibernate+jbpm整合成功
3.Struts+Spring+Hibernate实现上传下载
4.整合 JSF+Spring+Hibernate的小例子
5.用Spring更好地处理Struts动作三种整合
6.Spring与iBATIS的集成
7.Spring AOP之Hello World
8.Spring MVC验证的配置步骤
9.基于Spring例子的JPetStore分析
10.WEB开发中Spring AOP实际应用一例
最新推荐文章:
1.应用spring示例开发网站构思
2.Spring 数据源配置与应用
3.Spring中的四种声明式事务的配置
4.spring.net 学习笔记之AOP
5.Spring DAO之JDBC
6.Struts 2, spring 2, hibernate 的整合
7.spring 编程入门十大问题解答
8.Spring与struts整合开发实例(一)
9.spring入门几个问题及解决
10.Spring框架概述
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的