Spring自带的JPetStore分析(二)

Spring带的JPetStore的Struts MVC版
使用了多级的继承体系,有BaseAction,SecureBaseAction,BaseActionForm。这些父类将常用的功能进行了一些封装,对写实际的程序还是有参考价值的。
===BaseAction===
继承org.apache.struts.action.Action,其实org.apache.struts.action.DispatchAction可能功能更强一些。所有的Action都继承了这个类。
private petStore
在所有的Action中保存了这个business object,封装了所有的数据访问的方法
重载了这个方法:
public void setServlet(ActionServlet actionServlet)
  struts会在创建Action实例的时候自动执行这个方法。这个方法通过Spring获得PetStoreFacade接口的实现
增加了这个方法
protected PetStoreFacade getPetStore()
  返回petStore对象,只有之类能访问到这个方法
===SecureBaseAction===
这个类用于保护需要登录才能执行的操作。
在execute方法中:
检查在session中的accountForm对象,if (acctForm == null || acctForm.getAccount() == null),不存在或没有登录则,保存当前地址,跳转到登录页]
定义了一个抽象方法,代替被本类使用了的execute方法。
protected abstract ActionForward doExecute
===BaseActionForm===
这个类提供了一个常用的Form验证的框架,在子类中只要实现验证部分就可以了。
request.setAttribute("errors", errorList);将验证后的结果保存到request中。
这里还提供了struts的错误处理,actionErrors.add(ActionErrors.GLOBAL_ERROR, new ActionError("global.error"));
这个在新的Struts版本中将不能使用,要用ActionMessages。页面可以直接用struts的taglib来显示错误,不过这里好像没有将错误存入到actionErrors中去,只是使用了传统的方式来处理错误,这里并没有使用Struts的错误处理机制。
在IncludeTop.jsp中显示错误。
这个类还提供了一个通用的方法:
protected void addErrorIfStringEmpty(List errors, String message, String value);
检查value是否为空,若空者将message加入到errors这个列表中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值