Stecks集成Struts (二)
来源:互联网 发布:中国高铁发展史 知乎 编辑:程序博客网 时间:2024/05/30 23:03
Stecks集成Struts (二)
原来是想自己写下学习过程的, 结果却搞成了翻译, 而且还不是完整翻译.
呵呵, 就当翻译吧, 也就贴出来了.
http://strecks.sourceforge.net/doc-actions.php
1. Actions
在stecks中, 传统的Strtus Action被分离为两个对象.
一个是controller action 另一个是 an action bean.
1.1 Controller Actions
Controller Action (也被称作Action Controller) 背后的想法是:
一般的request 处理逻辑可以是抽象的并被许多action重用.
比如, 简单的CRUD web 应用通常使用三种类型的request 处理逻辑:
@ActionInterface(name = BasicSubmitAction.class)
public class BasicSubmitController extends BaseBasicController
{
@Override
protected ViewAdapter executeAction(Object actionBean, ActionContext context)
{
BasicSubmitAction action = (BasicSubmitAction) actionBean;
ActionForm form = context.getForm();
HttpServletRequest request = context.getRequest();
boolean cancelled = false;
if (request.getAttribute(Globals.CANCEL_KEY) != null)
{
cancelled = true;
}
if (form instanceof BindingForm && !cancelled)
{
action.preBind();
BindingForm bindingForm = (BindingForm) form;
bindingForm.bindInwards();
}
String result = cancelled ? action.cancel() : action.execute();
return getActionForward(context, result);
}
}
Stecks已经有很多内建的controller, 模仿DispatchAction, MappingDispatchAction and LookupDispatchAction的行为.
1.2 Action Beans
在request 处理逻辑被抽到controller action 之后, 接下来action bean就只需处理特定的业务逻辑了.
在Stecks中, action bean 将被配置到struts-config.xml中, 就好像原来的strtus action一样.
当第一次被调用时, 这个action bean的annotation被用来确定controller, 同时controller的实例将被创建.
controller 集成了Action, 将被保留在action缓存中,可以处理后续的/并发的请求.
每次接受到请求之后, controller将会创建一个新的action bean的实例. action controller自己是无状态的, 并被多个请求共享.
默认情况下, action bean 和 action controller 的对应如下:
org.strecks.action.BasicAction org.strecks.action.basic.BasicController
org.strecks.action.BasicFormAction org.strecks.action.basic.BasicFormController
org.strecks.action.BasicSubmitAction org.strecks.action.basic.BasicSubmitController
org.strecks.action.BasicDispatchAction org.strecks.action.basic.BasicDispatchController
org.strecks.action.NavigableAction org.strecks.action.navigable.NavigableController
org.strecks.action.NavigableFormAction org.strecks.action.navigable.NavigableFormController
org.strecks.action.NavigableSubmitAction org.strecks.action.navigable.NavigableSubmitController
org.strecks.action.NavigableDispatchAction org.strecks.action.navigable.NavigableDispatchController
- Stecks集成Struts (二)
- Stecks集成Struts (一)
- Spring2.0 集成Struts 2(二)
- A 项目 实战 (二)Spring 与 Struts 集成
- Struts(19)Struts集成
- Struts(19)Struts集成
- Struts + Velocity的集成
- Spring集成struts
- String,Struts,Hibernate集成
- Spring集成struts (1)
- Spring集成struts(2)
- Spring集成struts(3)
- spring struts hibernate 集成
- spring+struts的集成
- Struts+Spring+Hibernate集成
- Velocity与Struts集成
- Spring集成Struts
- Struts hibernate 集成问题
- C# 鼠标穿透功能
- 带提示的JTextField之二
- 带提示的JTextField
- 比较Java和C++的几个修饰符
- Stecks集成Struts (一)
- Stecks集成Struts (二)
- fedora8 使用小记之六:不再提示插入光盘
- 全面介绍Windows内存管理机制及C++内存分配实例(五):堆
- 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
- 如何恢复 Linux 上删除的文件(1)
- 如何恢复 Linux 上删除的文件(2)
- 如何恢复 Linux 上删除的文件(3)
- 非关语言: 设计模式
- [美味菜谱]蒸鸡蛋膏——要点详尽