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 

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕期长得太胖怎么办 狗吃马肉脸肿了怎么办 狗过敏了脸肿了怎么办 孕初期外阴很痒怎么办 怀孕了吃了田鸡怎么办 孕妇睡眠质量差怎么办吃什么 39周2天了还不生怎么办 孕中期体重猛长怎么办 4个半月胎位不正怎么办 41周不产生宫缩怎么办 生完孩子胎盘没有脱落怎么办 39周还是臀位怎么办 怀孕7个月胎位不正怎么办 怀孕六个多月胎位不正怎么办 怀孕七个月了胎位不正怎么办 怀孕七个月胎位不正怎么办 怀孕肚子上有妊娠纹怎么办 怀孕九个月肚子长痱子怎么办 怀孕前体重偏胖怎么办 怀孕打胰岛素血糖控制不好怎么办 孕后期憋的难受怎么办 怀孕6个月不想生怎么办 孕六个月不想要怎么办 怀孕9个月喝酒了怎么办 怀孕8个月喝醉了怎么办 怀孕6个月胃酸烧心怎么办 怀孕7个月胃酸怎么办 怀孕5个月胃酸怎么办 怀孕2个月胃酸怎么办 怀孕六个月胃酸烧心怎么办 孕六个月反胃酸怎么办 怀孕三个月胃酸吐酸水怎么办 孕六个月胃难受怎么办 孕6个月胃酸厉害怎么办 孕妇6个月胃酸怎么办 孕早期胎盘早剥怎么办 孕妇晕车怎么办最有效方法 怀孕了受凉胃疼怎么办 怀孕4个月胎位低怎么办 6个月胎位低怎么办 7个多月了胎位低怎么办