2010-10-11 75 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,它們非常相似。