2010-10-11 71 views
23

我是一名java开发人员,没有经验丰富,但我很熟悉大多数概念。为什么我应该学习和使用struts?

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

我学会了艰辛的道路。因此,我正在使用servlet在谷歌应用引擎中重新构建应用程序,并计划使用Velocity来使用模型 - 视图 - 控制器设计模式来实现它。

我也在看Struts,但之前没有用过框架。

有人能说服我为什么要将struts融入到这个项目中吗?一个中等规模的一两个人的项目真的会给我买很多吗?

有支杆的额外学习曲线有明显成本,收益是否会超过成本?或者使用Velocity足以分离逻辑?意见?

+3

Struts是可怕的。如果你想帮自己一个忙,使用Wicket(基于组件)或Spring MVC(基于操作)。两者都是非常直观的框架。 – 2010-10-11 11:16:44

+6

Struts2与Struts有很大不同,与Spring MVC或Stripes(基于动作)很相似 – leonbloy 2010-10-11 12:35:14

+7

Struts 1真的已经过时了。 Struts 2绝不可怕。 – 2010-12-19 03:15:22

回答

23

我看起来比这个项目更长远。正如你所看到的,第一次使用任何技术主要是在犯错误和向他们学习。所以这个第一个项目一旦完成就不太可能成为Struts使用的一个光辉的例子。然而,使用Struts(和你所指出的Tiles是一个主要关注的问题:JSP复制和粘贴)将是对“合适的”MVC的一个很好的钻研,也就是说它迫使你以特别结构化的方式来做事情,我碰巧体会了很多,我是一个很棒的Struts粉丝。

也就是说,还有其他的选择,例如, Spring包含Spring MVC以及更多。如果您打算投资克服学习曲线,那么考虑一下哪种框架将在整个中期内最有利于您:例如,您所在地区的雇主倾向于寻找哪些框架?在这个时候,我会和Spring一起去,在那里我感受到了动力,但是Struts对它的作用非常好。

+1

非常好,描述性的答案。 +1。我希望当你提到Struts时,你的意思是Struts 2. – 2010-10-11 10:32:18

+1

谢谢。实际上我使用Struts已经有5年了,但我有美好的回忆! – Brian 2010-10-11 12:03:56

11

如果你要学习一个框架,那么我会推荐Spring MVC over Struts。学习曲线不太陡峭,互联网上有很多Spring资源。

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

+0

是的,我也喜欢。 – 2010-10-11 10:33:16

3

为什么你应该学习Struts?我的答案是:因为雇主经常需要知道它,特别是对于维护较老的项目。我没有做出任何精确的测量,但我认为在我的地区,JSF和Struts常常用于Web应用程序开发。

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

4

学习分离逻辑非常好。你可以在不使用Velocity,Struts或任何框架的情况下做到这一点,如果你先用最少的帮助来尝试它,你可能会更多地了解如何做这种分离。学习一个框架(实际上是多个框架)也是值得的,但我不会亲自选择Struts作为第一个框架,除非它是您的雇主或未来雇主使用的框架。如果你的雇主使用Struts,我希望它是Struts 2,因为Struts 1正在变得古老。

我最喜欢与Wicket合作的框架,但它是从你目前看到的一个根本性转变。 SpringMVC也绝对值得一看。

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

8

第一:不要让名字迷惑你:Struts2和Struts是非常不同的框架。第二:从JSP到Velocity的变化可能是一个好的或不好的决定,但这不完全是重点。重点是从Model1(相当古老的术语,但仍然有用)转换。也就是说,将您的视图层与逻辑层分离。 (您可以将JSP或Velocity用于视图图层)。另外,决定你的视图层只是你架构的一部分:你仍然必须决定谁将处理请求并产生将被发送到视图的数据。最基本的选择是使用普通的servlet,但是,再次使用一些框架会更好。为此,Java中有一个lot of frameworks。 “基于行动”的是其中的一个子集,也许是最简单的学习。其中最古老的是Struts;今天最常用于新项目的是Struts2,Spring MVC和Stripes,它们非常相似。