Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller Struts2:模型还是行动?模型驱动类呢?_Model View Controller_Model_Struts2_Action_Model Driven - Fatal编程技术网

Model view controller Struts2:模型还是行动?模型驱动类呢?

Model view controller Struts2:模型还是行动?模型驱动类呢?,model-view-controller,model,struts2,action,model-driven,Model View Controller,Model,Struts2,Action,Model Driven,我只关心如何在Struts2下创建一个有用的项目,而不是一个结构良好的项目。我有一个名为customer的bean,其中有必要的属性及其getter和setter。。我想知道应该在哪里构建客户机bean的不同操作,例如订阅,升级。。。它应该在模型类还是动作类中?另外,我也不清楚需要什么样的模型驱动类。。非常感谢各位:)两者都不是,它们很可能属于服务类——但从你们的描述中无法分辨。当用户订阅时,实际会发生什么?升级 Action类本质上应该是web层和业务层之间的粘合剂、封送数据、处理两个层的成功

我只关心如何在Struts2下创建一个有用的项目,而不是一个结构良好的项目。我有一个名为customer的bean,其中有必要的属性及其getter和setter。。我想知道应该在哪里构建客户机bean的不同操作,例如订阅升级。。。它应该在模型类还是动作类中?另外,我也不清楚需要什么样的模型驱动类。。非常感谢各位:)

两者都不是,它们很可能属于服务类——但从你们的描述中无法分辨。当用户订阅时,实际会发生什么?升级

Action类本质上应该是web层和业务层之间的粘合剂、封送数据、处理两个层的成功/错误条件,等等

模型类就是您的业务领域的模型。这些模型的性质在不同的领域、设计/体系结构方法等之间可能有很大的差异。业务功能所在的领域也可能有很大的差异。服务层、DDD等都可以处理此类功能

然而,不应通过行动直接实施。相反,操作应该委托给服务层、模型等。换句话说,操作不应该直接更新数据库字段以指示用户已升级。web层只是指导站点用户


ModelDriven
只是一个抽象概念,它说的不是将动作放在值堆栈的顶部(例如,表单属性将设置在动作属性上),而是将模型的实例放在堆栈的顶部(例如,表单属性将设置在模型实例上)。

,我注意到,在我看到的所有示例中,它们限制了对属性、getter和setter使用模型类,但没有其他方法。。。如果我创建了一个服务包,在其中我创建了操纵不同模型类对象的类,那么我如何调用服务类中定义的方法呢?因为我还注意到,我们经常将动作与模型相匹配,因此在动作类中有一个模型类的对象(User=>UserAction)。。。如果是服务套餐,我们该怎么办?我希望我的问题是清楚的。再次感谢:)@user1459961您通常从操作或其他服务调用服务方法。