我为啥要学习和使用struts? [关闭]

Posted

技术标签:

【中文标题】我为啥要学习和使用struts? [关闭]【英文标题】:Why should I learn and use struts? [closed]我为什么要学习和使用struts? [关闭] 【发布时间】:2011-04-23 17:54:50 【问题描述】:

我是一名 Java 开发人员,经验不足,但我对大多数概念都相当熟悉。

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

我学得很辛苦。所以我现在正在使用 servlet 在谷歌应用引擎中重新构建应用程序,并计划使用 Velocity 使用模型-视图-控制器设计模式来实现它。

我也在研究 Struts,但之前没有使用过该框架。

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

使用 strut 的额外学习曲线有明确的成本,收益会超过成本吗?还是使用 Velocity 足以隔离逻辑?意见?

【问题讨论】:

Struts 很糟糕。如果您想帮自己一个忙,请使用 Wicket(基于组件)或 Spring MVC(基于动作)。两者都是很棒且直观的框架。 Struts2 与 Struts 非常不同,与 Spring MVC 或 Stripes(基于动作)非常相似 Struts 1 确实过时了。 Struts 2 一点也不糟糕。 【参考方案1】:

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

但是,使用 Struts(以及您所指出的主要问题:JSP 复制和粘贴)将是深入研究“适当的”MVC,即它迫使您以一种特别结构化的方式做事,并且我碰巧很感激,我是 Struts 的忠实粉丝。

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

【讨论】:

非常好的和描述性的答案。为此+1。我希望当您提到 Struts 时,您实际上是指 Struts 2。 谢谢。实际上,我使用 Struts 已经有 5 年了,但我有美好的回忆!【参考方案2】:

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

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

【讨论】:

是的,我也喜欢那个。【参考方案3】:

首先:不要让名称混淆您:Struts2 和 Struts 是非常不同的框架。

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

【讨论】:

【参考方案4】:

学习分离逻辑非常棒。你可以在不使用 Velocity、Struts 或任何框架的情况下做到这一点,如果你先尝试一下,你可能会更多地了解如何进行这种分离。

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

我最喜欢使用的框架是 Wicket,但它与您目前看到的框架相比发生了根本性的转变。 SpringMVC 也绝对值得一看。

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

以上是关于我为啥要学习和使用struts? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我们要在 softmax 中使用温度? [关闭]

Struts2学习---namespace,file模块包含,默认action

为啥在语言的简单性和执行时间之间似乎存在张力? [关闭]

struts2学习笔记之十四:使用注解配置Action(不是和spring集成使用)

Struts2源码学习——Struts2中的XWork容器

struts1学习