标签: model-view-controller

FLOW3动作参数和对象数组

FLOW3提供了一种方便的方法来通过URL中的ID传递实体,并在控制器操作的参数中自动实例化它们:

class PostController extends \TYPO3\FLOW3\MVC\Controller\ActionController {
    public function editAction(Post $post) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是你有复选框的用例怎么样,每个复选框代表一个特定的对象?将它们自动实例化也很方便:

<input type="checkbox" name="tags[]" value="1" />
<input type="checkbox" name="tags[]" value="2" />
...
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉FLOW3将$tags变量自动实例化为一个Tag对象数组?就像是:

public function setTagsAction(Post $post, /** @var Model\Tag */ array $tags) {
    $post->setTags($tags);
}
Run Code Online (Sandbox Code Playgroud)

php model-view-controller orm typo3-flow

78
推荐指数
1
解决办法
2623
查看次数

胖模型/瘦控制器与服务层

我使用.Net开发了多年的企业应用程序我的应用程序通常有一个包含映射到SQL DB表的实体的域模型.我使用Repository模式,依赖注入和服务层.

最近我们开始研究MVC 3项目,我们讨论了在哪里放置哪些逻辑.我来自瘦控制器/ FAT模型架构,并想知道服务层如何适应

选项1 - 模型与服务的对话

控制器很薄,调用模型上的方法.模型"知道"如何从数据库加载自己并与存储库或服务进行通信.例如,customerModel有一个Load(id)方法,并加载客户和一些子对象,如GetContracts().

选项2 - 控制器与服务对话

Controller要求服务检索模型对象.加载/存储等逻辑在服务层中.该模型是仅具有数据的纯实体模型.

为什么选项1会成为更好的选择,特别是当我们谈论企业应用时,我的经验告诉我要分离问题,让模型和控制器尽可能地薄,并且有专门的服务来做业务逻辑(imcl.数据库交互)

感谢所有建议和对优质资源的参考.

architecture model-view-controller asp.net-mvc service-layer asp.net-mvc-3

78
推荐指数
2
解决办法
2万
查看次数

胖模型,瘦控制器和MVC设计模式

我刚看了一篇博客文章,用银行类比来解释MVC.我有几个月使用MVC框架(CakePHP)进行Web应用程序开发的经验,所以我得到了基础知识,但我开始看到一个主题让我觉得我采用了一种有缺陷的方法来处理逻辑:

  • 胖子模特,瘦小的控制器
  • 尽可能在模型中保留尽可能多的业务逻辑

在我的应用程序中,模型是厌食症,控制器是肥胖的.我在控制器中有所有业务逻辑,除了模型中的关联和验证规则之外什么也没有.

通过我的控制器扫描,我现在可以识别出许多应该放在模型中的逻辑:

  • 该应用程序具有包含项目的列表,并且可以对项目进行排名.将列表按排名顺序排列的排序逻辑位于控制器中.
  • 同样,项目(项目模型)也有图像(图像模型).每个项目可能有一个默认图像(由items表中的image_id指定).当项目与其图像一起显示时,应首先显示默认图像.我有一个在控制器中执行此操作的逻辑.
  • 显示列表时,相关列表将显示在侧栏中.确定哪些列表相关的逻辑在控制器中.

现在问我的问题:

  1. 通过上面给出的示例,我是否正确地认为那些是属于模型的控制器中的逻辑实例?
  2. 应该进入模型的网络应用程序常见的其他逻辑领域是什么?
  3. 我确定发现这个问题并且改变我的设计模式是成功的一半,但即使我决定采用上面提到的那些例子并尝试将该逻辑移到模型中,我也不知道从哪里开始.任何人都可以通过在这里发布一些代码或链接到一些好的学习资源来指出我正确的方向吗?CakePHP特定的帮助会很棒,但我确信任何MVC都足够了.

model-view-controller controller cakephp model

75
推荐指数
2
解决办法
1万
查看次数

MVC模式和SWING

我认为最难以真正掌握"真实SWING生活"的设计模式之一是MVC模式.我已经浏览了这个讨论模式的网站上的一些帖子,但我仍然觉得我不清楚如何利用我的(Java SWING)应用程序中的模式.

假设我有一个包含表格,几个文本字段和几个按钮的JFrame.我可能会使用TableModel将JTable与基础数据模型"桥接".但是,负责清除字段,验证字段,锁定字段以及按钮操作的所有函数通常都直接在JFrame中.但是,是不是混合了Controller和View的模式?

据我所见,我设法在查看JTable(和模型)时"正确"实现了MVC模式,但是当我整个看整个JFrame时,事情变得混乱.

我真的很想听听别人对此的看法.当你需要向用户显示表格,几个字段和一些按钮(使用MVC模式)时,你如何去做?

java model-view-controller swing

73
推荐指数
3
解决办法
6万
查看次数

@RequestBody MultiValueMap不支持内容类型'application/x-www-form-urlencoded; charset = UTF-8'

基于x-www-form-urlencoded与Spring @Controller的问题的答案

我写了下面的@Controller方法

@RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST
            , produces = {"application/json", "application/xml"}
            ,  consumes = {"application/x-www-form-urlencoded"}
    )
     public
        @ResponseBody
        Representation authenticate(@PathVariable("email") String anEmailAddress,
                                    @RequestBody MultiValueMap paramMap)
                throws Exception {


            if(paramMap == null || paramMap.get("password") == null) {
                throw new IllegalArgumentException("Password not provided");
            }
    }
Run Code Online (Sandbox Code Playgroud)

请求失败并出现以下错误

{
  "timestamp": 1447911866786,
  "status": 415,
  "error": "Unsupported Media Type",
  "exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
  "message": "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported",
  "path": "/users/usermail%40gmail.com/authenticate"
}
Run Code Online (Sandbox Code Playgroud)

[PS:泽西岛更加友好,但现在考虑到实际限制,现在无法使用它]

model-view-controller spring spring-mvc

73
推荐指数
7
解决办法
16万
查看次数

AngularJS客户端MVC模式?

到现在为止,我主要是利用Struts 2,Spring,JQuery用于构建Web应用程序技术堆栈.关键是,提到的堆栈使用服务器端MVC模式.Web浏览器的主要作用仅限于请求/响应周期(+客户端验证).数据检索,业务逻辑,布线和验证主要是服务器端的职责.

我对AngularJS框架的几个问题很少受到我读过的以下引文的启发:


来自AngularJS教程:

对于Angular应用程序,我们鼓励使用模型 - 视图 - 控制器(MVC)设计模式来分离代码并分离关注点.

来自维基百科模型 - 视图 - 控制器:

模型 - 视图 - 控制器(MVC)是一种将信息表示与用户与之交互分离的体系结构.该模型由应用程序数据和业务规则组成,控制器调解输入,将其转换为模型或视图的命令


AngularJS使用客户端MVC模式.所以我想没有其他选择那么以某种方式也将验证逻辑包含在客户端?

编写健壮的AngularJS应用程序的最佳方法是什么?客户端的MVC和服务器端的某种MC(型号,控制器)?

这是否意味着,MODEL和CONTROLLER在某种程度上是重复的(客户端/服务器)?

我知道我的问题有些奇怪,但我认为原因是,我在某种程度上习惯了传统的服务器端MVC模式.我确信有人已经完成了相同的过渡.

javascript model-view-controller server-side client-side angularjs

72
推荐指数
3
解决办法
4万
查看次数

在Angular中,如何使用$ location.path重定向为$ http.post成功回调

我试图通过发送一个帖子到一个PHP文件来做一个简单的身份验证服务,我需要它在我ng-view的成功时加载我的部分主页.

这是我试过的:

function loginCtrl($scope, $http, $location){
    $http.post(url,data).success(function(data){
        $location.path('/home');
    });
}
Run Code Online (Sandbox Code Playgroud)

我的网址更改但未ng-view更新的结果.当我手动刷新页面时它会更新.

(已经正确配置了路由$routeProvider,我已经测试过使用独立功能重定向此功能而不是回调功能)

我也尝试定义$location.path('/home')为一个函数,然后在回调上调用它仍然无法正常工作.

我做了一些研究,发现一些文章说明在使用另一个第三方插件时会发生这种情况,我只加载angular.js

对某些学习材料的任何见解或指示都会很棒

javascript model-view-controller angularjs

72
推荐指数
2
解决办法
20万
查看次数

什么是一个很好的轻量级Python MVC框架?

我知道那里有很多Python框架.你们能指出我正确的方向吗?我主要关注的是简单性,我不需要很多无关的功能.以下是我想要(或不想要)的其他几件事:

  • 不关心ORM,只是想让它与MySQL一起工作
  • 有可配置的路线
  • 支持布局

python model-view-controller frameworks

71
推荐指数
9
解决办法
6万
查看次数

如何组织游戏代码以适应MVC模式?

我是大学新生,攻读计算机科学学位......过去几年我编写了大量的课程,但最近我对组织代码,设计模式,语言差异等方面的理论思考越来越深入.

我有一个Java类,所以我放弃了我的C++研究/开发,转而使用Java和JOGL(Java OpenGL).太棒了!但这不是重点.

我想制作一款小型角色扮演游戏,但这个问题确实适用于任何类型的游戏.如何以结构化的方式组织游戏对象,如模型 - 视图 - 控制器模式?它看起来是一个惊人的模式,使用非常广泛并且很有意义,但我无法弄清楚如何实现它.

例如,我需要跟踪一个GL对象以便绘制到屏幕上.我必须有实现MouseListener,MouseMotionListener,MouseWheelListener和KeyListener(或者一个类,一体化输入管理器)的类.我必须将我的游戏数据放在所有这些不同类可以访问和修改它的地方; 如果有人按下键盘上的按钮,输入管理类需要以某种方式执行键映射到的操作; 当需要绘制一个框架时,图形类需要找到一种方法来遍历所有不同的"事物"并将它们全部绘制出来.

我最大的问题是GUI; 它与哪里结合在一起?它类似于输入,但并不完全,它需要设置和获取实际游戏模拟中的数据......如果我决定尝试添加网络,那就更复杂了(类似于GUI )还需要访问大量数据进行修改和阅读...

哦,我只是困惑.我不知道如何以面向对象的方式将所有这些工作结合在一起......编写明显符合模式的东西很容易,但是当你发生的大量事情都与一个游戏循环相关时,相互修改和游戏数据等,...我甚至不知道.也许我只是让这个比实际更大.

还有其他人有这种感觉吗?请为我的情况提供一些清晰度,这样我就可以花更少的时间来担心并且不知道从哪里开始!

-Ricket

编辑:找到一个很好的图表,可以帮我解决这个问题...来源:(小心,PS文件!)http://www.tucs.fi/publications/attachment.php?fname=TR553.ps.gz

http://img10.imageshack.us/img10/6278/mvcdiagramgamesbl5.png

编辑2:我也喜欢这个人对他如何计划他的MVC游戏的解释:http://interactivesection.wordpress.com/2007/11/19/dum-de-dum-drum-my-first-mvc-game-development/

Edit3:另一篇很棒的文章! http://dewitters.koonsolo.com/gamemvc.html

java oop model-view-controller design-patterns

71
推荐指数
3
解决办法
2万
查看次数

MVC:在哪里放置业务逻辑?

首先,我已经看到了很多这方面的问题,但背后还没有足够的推理.如果我的问题不够好而应该删除,我会理解.

我已经看了一下,例如,这个和45多个投票的答案说他建议你把业务逻辑放在模型中,听起来很合乎逻辑.

然而,我的第一个大型项目我完全在控制器中完成了所有BL,因为我没有质疑这些事情,看看它是如何完成的AccountController,如果您选择MVC进行表单身份验证,则会自动添加.所有方法看起来都非常充满BL.或者也许它是可以添加的最少量的代码,我忽略了一些东西?

youtube上的一个人通过将所有逻辑放入他的模型中问我是否正确,起初我不是!然后我开始想,也许他是对的!?

那么,毕竟,我在哪里放置我的业务逻辑?如果它在模型类中,那么,在控制器中的方法中应该将多少代码视为健康数量?一行最多从控制器中的模型调用一些方法,然后返回视图?

c# model-view-controller asp.net-mvc business-logic

68
推荐指数
8
解决办法
6万
查看次数