我为什么要学习和使用struts?

Dav*_*rks 24 java jsp velocity struts2

我是一名java开发人员,没有经验丰富,但我对大多数概念都很熟悉.

我最近使用Tomcat/JSP(~30个动态页面)构建了一个网站.我犯了新的错误,在JSP中包含大部分核心逻辑,使用合理化,它只是"一个简单的项目".

我学到了很多困难.因此,我现在使用servlet在谷歌应用引擎中重新构建应用程序,并计划使用Velocity使用模型 - 视图 - 控制器设计模式实现它.

我也在看Struts,但之前没有使用过这个框架.

有人能说服我为什么要将struts纳入这个项目吗?对于一两个人的中型项目,真的会给我买很多东西吗?

在有额外学习曲线的情况下,有一个明显的成本,它的好处是否会超过成本?或者Velocity的使用是否足以隔离逻辑?意见?

Bri*_*ian 25

我看起来比这个项目更长远.如您所见,您第一次使用任何技术主要是犯错误并从中学习.所以这个第一个项目一旦完成就不会成为Struts使用的光辉榜样.

使用Struts(和你指出的Tiles是一个主要关注点:JSP复制和粘贴)将是一个很好的钻研"适当的"MVC,即它迫使你以特别结构化的方式做事,而我碰巧非常欣赏,我是Struts的忠实粉丝.

也就是说,还有其他选择,例如Spring包含Spring MVC以及更多内容.如果您打算投资克服学习曲线,请考虑在中期内哪个框架最有利于您:您所在地区的雇主倾向于寻找哪些框架?在这个时间点,我会选择Spring,我觉得这个动力很强,但是Struts非常擅长它的功能.


Qwe*_*rky 13

如果您要学习框架,那么我建议使用Spring MVC而不是Struts.学习曲线不是太陡峭,互联网上有很多Spring资源.

一旦你有了Spring,你会发现你的应用程序更易于维护和支持.您还可以更轻松地添加安全性等增强功能.


leo*_*loy 10

第一:不要让名字混淆你:Struts2和Struts是非常不同的框架.

第二:从JSP变为Velocity可能是一个好的或坏的决定,但这不是重点.关键是要远离Model1(相当古老的命名法,但仍然有用).也就是说,将视图层与逻辑层分离.(您可以将JSP或Velocity用于视图层).此外,要确定您的视图层只是架构的一部分:您仍然必须决定谁将处理请求并生成将发送到视图的数据.最基本的选择是使用普通的servlet,但同样,最好使用一些框架.为此,有很多框架在Java中."基于行动"的是其中的一个子集,也许是最容易学习的.其中,最古老的是Struts; 今天最常用于新项目的是(没有特别的顺序)Struts2,Spring MVC和Stripes - 它们非常相似.