工作3年了,问一个很纠结的问题,纠结了3年了

eft21 2011-01-07 11:21:05
struts中的action到底属于控制层还是模型层?
我理解的是:
struts中的ActionServlet是控制层
action、service、dao统称为模型层
其中细分service为业务逻辑层、dao为持久层、action是模型层
可是工作中多人都认为action是控制层。
最近遇到一个开发的问题:
要求实现下载操作日志功能,同事非要把生成文档的代码也放在service中,而将文档路径返回给action
我认为应该放在action中,因为这样会导致service中的代码复用性很差,请大虾给予指导?

...全文
385 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
风过无痕1110 2011-01-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yjjcyber 的回复:]
为什么重用性很差呢,在service层中的bean可以给任何一个action调用,我想知道为什么说重用性差
[/Quote]
很明显,越底层的方法重用的可能性越高,如果功能有可能被复用,放在service是个很好的选择
风影萧诺 2011-01-07
  • 打赏
  • 举报
回复
我 个人认为是 控制层。。。
yjjcyber 2011-01-07
  • 打赏
  • 举报
回复
为什么重用性很差呢,在service层中的bean可以给任何一个action调用,我想知道为什么说重用性差
风过无痕1110 2011-01-07
  • 打赏
  • 举报
回复
action本身的代码也不适于其他action来调用,如果其中书写了大量业务逻辑代码,就得不到复用,下次遇到同类型的功能,势必要拷贝之前action中的代码,降低了代码的复用度,而如果你直接调用之前action中的部分方法,又会增加维护的难度
爱吃面条 2011-01-07
  • 打赏
  • 举报
回复
action中主要处理界面需要的东西,模型方面的东西统一放在service中。
action属于控制层
风过无痕1110 2011-01-07
  • 打赏
  • 举报
回复
这个你要先弄清楚模型是什么意思,MVC里面的M即模型层,主要是指实现业务逻辑的层次,在j2ee里包括,dao,bean,service。V表示视图层,J2EE中的jsp和部分servlet,C控制层也叫控制器,是连接视图与模型的桥梁,一般来说servlet可以划分到控制层,struts中的action也属于控制层,他们的主要任务是完成将视图层发出的请求经过处理转发给模型层处理,action最主要的功能其实就是封装了servlet,完成请求分发的功能,不承担主要的业务逻辑处理。
eft21 2011-01-07
  • 打赏
  • 举报
回复
你认为action里面一般写什么操作
action属于MVC中的控制层还是模型成?
风过无痕1110 2011-01-07
  • 打赏
  • 举报
回复
像一些更通用的方法应该放到action以下层面,才能最大程度的复用。
风过无痕1110 2011-01-07
  • 打赏
  • 举报
回复
(查询单个对象,查询list,增加,删除等)像这些完全可以写成独立的方法,
至于“生成文档的代码”也可以写成一个通用方法,这影响其他action调用吗
eft21 2011-01-07
  • 打赏
  • 举报
回复
可以回答详细些吗
我认为service中的方法(查询单个对象,查询list,增加,删除等)可以被其他的action使用
而每个action更针对于具体的功能
风过无痕1110 2011-01-07
  • 打赏
  • 举报
回复
放在哪都可以,至于放在service会导致代码复用性很差,不知你是如何理解的,工作3年了还在纠结这种问题,很是怀疑。
SimonYeung 2011-01-07
  • 打赏
  • 举报
回复
kky2010_110 2011-01-07
  • 打赏
  • 举报
回复
数学中的建模是建立一个通用的解决方法或论证方法!
action是控制层,控制请求到哪一个模型中,模型就是之后的东西了!
但是之后的东西也是存在分层的(mvc),
showjim 2011-01-07
  • 打赏
  • 举报
回复
努力

eft21 2011-01-07
  • 打赏
  • 举报
回复
多谢大家的指教
努力向架构师方向发展
xin625201 2011-01-07
  • 打赏
  • 举报
回复
楼主的3年工作生涯很失败,你只要了解jsp的servlet就应该了解了,其实struts的actionservlet为中心控制器,整体来讲就可以理解为action的领导,来管理action控制工作,就如一个是销售团队,一个是销售领导,我想你不会把领导底下的人员不称为销售人员吧,同理,action也就是这样的,他又控制跳转的能力!你应该多看看其他的一些基础技术,而不是在这里琢磨这点问题!所谓的开发不就是懂得使用,框架大体的意思就够了,java方向开源技术这么多,你应该多学点其他的,然后你就会慢慢了解action的真正能力了!
阿甘1976 2011-01-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 fienddevil 的回复:]
引用 6 楼 tangyanbo1110 的回复:
这个你要先弄清楚模型是什么意思,MVC里面的M即模型层,主要是指实现业务逻辑的层次,在j2ee里包括,dao,bean,service。V表示视图层,J2EE中的jsp和部分servlet,C控制层也叫控制器,是连接视图与模型的桥梁,一般来说servlet可以划分到控制层,struts中的action也属于控制层,他们的主要任务是完成将视图层发……
[/Quote]
我为lz的三年感到*****
kerioz 2011-01-07
  • 打赏
  • 举报
回复
action 你别的不做 只做控制就可以了 基层的数据交互给dao
有业务的处理交给service或是biz
但是有时候有些东西没法在上面2个里面完成或说不方便就会在action内处理
那也没错 纠结个什么咯 又不是架构师 别人怎么说我怎么做
sdh888hf 2011-01-07
  • 打赏
  • 举报
回复
struts整个才算控制层,struts核心就是拦截器,拦截到用户请求时会解析地址然后访问对应的Action类,,通过Action类再去调用Service业务方法,不要说Action是属于哪一边的,Action类起到联通作用,事情就是那么简单,我是这么理解的。(工作经验半年)
栋栋 2011-01-07
  • 打赏
  • 举报
回复
在我理解Action充当的是控制层
加载更多回复(5)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧