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

时间:2010-10-11 10:15:52

标签: java jsp struts2 velocity

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

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

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

我也在关注Struts,但之前没有使用过这个框架。

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

在支撑的额外学习曲线中有明显的成本,其好处是否会超过成本?或者Velocity的使用是否足以隔离逻辑?意见?

5 个答案:

答案 0 :(得分:24)

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

使用Struts(和你指出的Tiles是一个主要关注点:JSP复制和粘贴)将是一个很好的钻研“正确的”MVC,即它强迫你以特别结构化的方式做事,并且我碰巧很欣赏,我是Struts的忠实粉丝。

那说,还有其他选择,例如Spring包含Spring MVC以及更多内容。如果您打算投资克服学习曲线,请考虑在中期内哪个框架最有利于您:您所在地区的雇主倾向于寻找哪些框架?在这个时候,我会选择Spring,在那里我感觉到了这种势头,但是Struts非常擅长它的作用。

答案 1 :(得分:12)

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

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

答案 2 :(得分:9)

首先:不要让名字让你感到困惑:Struts2和Struts是非常不同的框架。

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

答案 3 :(得分:4)

学会分离逻辑非常好。你可以在不使用Velocity,Struts或任何框架的情况下做到这一点,如果你先用最少的帮助尝试,你可能会更多地了解做这种分离需要做些什么。

学习框架(实际上是多个框架)也是值得的,但我不会亲自选择Struts作为第一个框架,除非它是您的雇主或未来雇主使用的框架。如果你的雇主使用Struts,我希望它是Struts 2,因为Struts 1变得古老了。

我最喜欢使用的框架是Wicket,但它与你目前正在看的是一个彻底的转变。 SpringMVC也值得一看。

如果您的雇主已经使用框架在Java中进行Web开发,请尝试学习实际使用的框架,并请求您的同事帮助学习它。

答案 4 :(得分:3)

为什么你应该学习Struts?我的答案是:因为雇主经常需要知识,尤其是维护旧项目。我没有做任何精确的测量,但我认为在我所在的地区,JSF和Struts最常用于Web应用程序开发。

Struts是一个非常古老的Web框架,用它编写现代AJAX GUI非常笨拙,所以创建了更好的框架。 JSF对我来说不那么笨拙,但也有一些问题。我最喜欢的网页框架是Vaadin和GWT,但我不是在为你推荐任何东西 - 你应该自己做出决定。