请教大侠在Struts中的MVC2设计模式中的二个小问题,能不能给个标准的答案?谢谢!这些天我学习Struts的MVC2设计模式,有些问题不同的教程有不同的回答啊!把我搞糊涂了啊!请教大侠在Struts中的MVC2设计模式中的二个小问题,能不能给个标准的答案?谢谢!1.ActionForm 类和Action 类这二个实现业务逻辑功能的类到底是归到C层(Controller,也就是控制器层)还是归到M层(Model,也就是模型层),还是V层(View,视图层)?(孙卫琴的书中好像还把ActionForm 类归到了V层了啊!把人都搞糊涂了啊!)2.如果把Action 类按有的教程上说的应该归到C层,那在Struts中不是没有M层了吗?那M层又是些什么啊?(我看了《Struts in Action中文版》这本书的第一个Struts入门register的小例子,如果把RegisterAction 类归到了C层,那这程序中不是没M层了吗?)

解决方案 »

  1.   

    M层一般都是用户自定义的类用于连接数据库或执行逻辑操作的,一般都不会用到Servlet和Struts中的API,易于重用和维护!
      

  2.   

    1 Action应该归纳到表现层;表现层包含了试图层和控制层;ActionForm也应该归纳到表现层,确切的说应该是试图层中的View Helper,所以可以归纳到View层;
      

  3.   

    2
    所谓的分层并没有严格的划分;一般规模的项目Action既可以作为控制也可以作为逻辑;如果楼主想明确的话,应该是这样的view(jsp,tag,html)+view helper -- action -- business logic -- persistence layer -- db
      

  4.   

    楼上二位老兄的回答把小弟搞糊涂了,这些基本的问题要搞清楚才行啊!请大侠们给个标准的答案啊!谢谢!问题解决后马上结贴!
    1.ActionForm 类和Action 类这二个实现业务逻辑功能的类到底是归到C层(Controller,也就是控制器层)还是归到M层(Model,也就是模型层),还是V层(View,表示层)?(孙卫琴的书中好像还把ActionForm 类归到了V层了啊!把人都搞糊涂了啊!)2.如果把Action 类按有的教程上说的应该归到C层,那在Struts中不是没有M层了吗?那M层又是些什么啊?(我看了《Struts in Action中文版》这本书的第一个Struts入门register的小例子,如果把RegisterAction 类归到了C层,那这程序中不是没M层了吗?)
      

  5.   

    struts只实现了C的模式,ActionForm因为要和JSP页面的联系起来所以也可以是V,而M就是实现业务逻辑的(在M里面你要实现所有的方法让C来调用这写方法).往往有些人在写代码是把M写在了C里面,虽然程序是没问题的,但就失去了MVC的意思了,对于以后的维护以是很麻烦的.
    也是初学者,如有说错的地方请多包含!
      

  6.   

    struts框架是能够帮你更好的实现mvc模式
    他自己并没有不包含mvcaction----C
      

  7.   

    ActionForm 类和Action 类这二个实现业务逻辑功能的类到底是归到C层,归在C层里面,M层的话,如果分离得很清楚的话,就应当只用于数据库操作,或者文件读写操作..建议去买本<strut入门与项目实践> 张桂元编的,对入门有用,比孙的书实用多了..孙的书大都是泛泛而谈,内容多,但却讲不清楚!