请教大侠在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.   

    1.ActionForm 我认为应该是归到V层,它的作用只是暂时存放http请求的数据,并没有涉及到任何的业务逻辑。~
    2.我现在正在学着用struts开发一个项目,看了struts的一份文档,觉得struts中的主controller是ActionServlet在struts-config.xml中配置,用来控制全局,而Action顾名思义,动作,应该是从controller。因为首先,V层产生http请求,是先由actionservlet接收,然后在xml文件中查找相对应的url,然后再由对应的action类处理具体的数据。
    3.在struts的一些入门例子中,确实不一定需要对应的M层。M层的作用是封装数据。
      

  2.   

    应该是C,控制器,它只是负责调用业务对象,然后转发,没有做什么实际涉及业务的东西,所以我认为是控制器。至于M,应该是bo,formbean,dao都属于。模型就是对数据的操作,所以和数据有关的操作,定义都属于这个范畴。
      

  3.   

    ActionForm是V层,负责与jsp之间传递数据,校验数据Action是C,控制器,它只是负责调用业务对象,调用M层的方法,然后转发
    M层是对数据操作的方法,通常会是一些实体Bean,也包括业务逻辑操作,当然在M层里尼还可以再分层
      

  4.   

    ActionForm属于V层,暂时存储jsp表单数据,&到达Action前对field做验证
    Action属于C控制层,它只是负责调用M层的方法,然后转发到相应的页面或Action。
    其实struts本身是没有提供真正的M层的
      

  5.   

    模型:包装应用程序状态,回应对请求的查询。体现应用程序功能,将状态的变化通知视图。
    控制器:定义应用系统行为。将用户请求发送到模型更新。选择视图作为对请求的回应。
    视图:向模型请求更新,将请求发送到控制器。控制器负责状态的传递,模型负责状态的保存和处理。struts应该没有模型,而是你自己定义的。
      

  6.   

    ActionForm是视图层的,它只是在中间传递数据而已,严格来说,Action并不能完全归入控制层,因为可以直接把控制逻辑写在Action里面,它对于ActionServlet起到一个调度分流的作用,
    其实根据孙卫琴的观点,Action是位于c和v之间的,我非常同意这个观点,struts并没有实现Model的规范,作为一个mvc框架,我觉得也没有这个必要,因为作为一个开发者,他面对最多的将是model层,可以自由发挥,由Action调用就行料,用ejb还是hibernate都没有关系。
    你看看struts就知道了,ActionServlet只是拦截料客户的请求,加以解析,读取配置文件,根据form调用调用配置的相应的action,你看源代码就会很清楚了
      

  7.   

    http://www-128.ibm.com/developerworks/cn/java/l-struts-mvc/index.html
    正在看,与楼主分享! 
    顺便请问,那里可以下载到免费的食品教程? 谢谢!
      

  8.   

    看这个吧,上面讲解的不错!
    http://www-128.ibm.com/developerworks/cn/java/j-strutscol/