??? 從畢業到現在,一直用struts在開發!對struts標簽用的算是比較多了,也確實非常喜歡struts的風格!
??? 可最近接觸一些朋友,包括在網上看到一些文章,發現大家對struts標簽的影響好像并不怎么樣!很多公司用struts的MVC卻不用他的標簽,也有很多朋友就是覺得JSTL比較好!
??? 一直很納悶這個問題,這里只想說說自己用struts標簽的感受!
???
一、美觀的標簽風格
??? ?? 標簽風格與普通的html標簽完全一樣,各種標簽屬性的注入不使用任何特殊符號,保證了jsp頁面的統一和美觀;
??? ?? 同樣是在頁面上輸出某個Bean的屬性,用struts的
<bean:write name="beanName" property="name" />標簽看上去多簡潔明了。但如果用JSTL的
<c:out value="${beanName.name}" />則需要使用特殊符號
“$”,看上去極其別扭!另外出錯率也是相對比較高的!比如寫掉了一個
“}”,頁面也卻不報語法錯,如果不運行該頁面,我相信你是很難查出來的!
???
二、強大的功能
??? ?? 普通的輸出,循環迭代、比較判斷、鏈接、下拉框、等等功能,對struts標簽和JSTL來說都沒有任何問題!
??? ?? 但如果要實現多語言,我相信絕對不會有人忘記struts的<bean:message/>標簽,有了<bean:message/>標簽,咱們的jsp頁面上真的就不用出現任何的文字描述了!這樣的頁面代碼難道可讀性不高嗎?下面是我的一個簡單頁面,感受一下!呵呵 !
??? ??

??? ?? 另外,你如果在jsp頁面上寫一些javascript腳本,用于驗證的話,提示信息肯定是必不可少的!為了頁面美觀,你同樣可以寫
alert('<bean:message key="XXX"/>');這樣的代碼來彈出提示信息,絕對沒有任何問題! :-)??? ??? <html:errors/>標簽就不用我多說了吧!用來顯示ValidatorPlugIn框架攔截信息的不二選擇!
???
三、支持自定義標簽??? ?? 在實際開發過程我們都會碰到一些特殊的業務邏輯,不管是用struts還是JSTL都比較難直接解決!這個時候,struts對自定義標簽的支持就突顯優勢了!
??? ?? 首先,根據你的個人喜好,用任意名稱定義一個簡單的tld(
yjhmily.tld),然后在tld中,定義你的標簽簽名(
<yjhmily:page/>)和屬性,然后寫一個繼承
BodyTagSupport(還有其他父類)的類,根據具體業務邏輯寫幾個方法;最后在頁面上引入標簽
<yjhmily:page name="XXX" href="XXX"/>,基本就ok了!大有一行標簽抵好幾行代碼的感覺!呵呵!
??? ?? 我的jsp頁面:
??? ?? ?? ?? ?? ??
??? ?? ?? ?? ?? ?? 
??? ??
??? ?? 接下來只需要在action中往請求里存入解得列表的sql語句.
??? ?? 頁面效果如下:
??? ?? ?? ?? ??

???? ?? 個人覺得這樣的自定義標簽,在團隊開發中效果還是非常明顯的,每個人都不用去關心分頁的具體邏輯,只需要自己寫sql語句,然后在頁面引用標簽就ok了!
??? ??
struts標簽還有很多其他的好處,這里就不一一描述了!總之,強烈支持struts標簽!
??? ? 歡迎各位指點!
????
???
???