當(dāng)前訪問本站: hits

          yjhmily

          堅(jiān)持走自己的路……

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
          ??? 從畢業(yè)到現(xiàn)在,一直用struts在開發(fā)!對struts標(biāo)簽用的算是比較多了,也確實(shí)非常喜歡struts的風(fēng)格!

          ??? 可最近接觸一些朋友,包括在網(wǎng)上看到一些文章,發(fā)現(xiàn)大家對struts標(biāo)簽的影響好像并不怎么樣!很多公司用struts的MVC卻不用他的標(biāo)簽,也有很多朋友就是覺得JSTL比較好!

          ??? 一直很納悶這個(gè)問題,這里只想說說自己用struts標(biāo)簽的感受!

          ??? 一、美觀的標(biāo)簽風(fēng)格

          ??? ?? 標(biāo)簽風(fēng)格與普通的html標(biāo)簽完全一樣,各種標(biāo)簽屬性的注入不使用任何特殊符號,保證了jsp頁面的統(tǒng)一和美觀;
          ??? ?? 同樣是在頁面上輸出某個(gè)Bean的屬性,用struts的<bean:write name="beanName" property="name" />標(biāo)簽看上去多簡潔明了。但如果用JSTL的<c:out value="${beanName.name}" />則需要使用特殊符號$,看上去極其別扭!另外出錯(cuò)率也是相對比較高的!比如寫掉了一個(gè)
          “}”,頁面也卻不報(bào)語法錯(cuò),如果不運(yùn)行該頁面,我相信你是很難查出來的!


          ??? 二、強(qiáng)大的功能

          ??? ?? 普通的輸出,循環(huán)迭代、比較判斷、鏈接、下拉框、等等功能,對struts標(biāo)簽和JSTL來說都沒有任何問題!
          ??? ?? 但如果要實(shí)現(xiàn)多語言,我相信絕對不會(huì)有人忘記struts的<bean:message/>標(biāo)簽,有了<bean:message/>標(biāo)簽,咱們的jsp頁面上真的就不用出現(xiàn)任何的文字描述了!這樣的頁面代碼難道可讀性不高嗎?下面是我的一個(gè)簡單頁面,感受一下!呵呵 !

          ??? ?? strutsTag.JPG

          ??? ?? 另外,你如果在jsp頁面上寫一些javascript腳本,用于驗(yàn)證的話,提示信息肯定是必不可少的!為了頁面美觀,你同樣可以寫alert('<bean:message key="XXX"/>');這樣的代碼來彈出提示信息,絕對沒有任何問題! :-)

          ??? ??? <html:errors/>標(biāo)簽就不用我多說了吧!用來顯示ValidatorPlugIn框架攔截信息的不二選擇!


          ??? 三、支持自定義標(biāo)簽

          ??? ?? 在實(shí)際開發(fā)過程我們都會(huì)碰到一些特殊的業(yè)務(wù)邏輯,不管是用struts還是JSTL都比較難直接解決!這個(gè)時(shí)候,struts對自定義標(biāo)簽的支持就突顯優(yōu)勢了!

          ??? ?? 首先,根據(jù)你的個(gè)人喜好,用任意名稱定義一個(gè)簡單的tld(yjhmily.tld),然后在tld中,定義你的標(biāo)簽簽名(<yjhmily:page/>)和屬性,然后寫一個(gè)繼承BodyTagSupport(還有其他父類)的類,根據(jù)具體業(yè)務(wù)邏輯寫幾個(gè)方法;最后在頁面上引入標(biāo)簽<yjhmily:page name="XXX" href="XXX"/>,基本就ok了!大有一行標(biāo)簽抵好幾行代碼的感覺!呵呵!

          ??? ?? 我的jsp頁面:
          ??? ?? ?? ?? ?? ??
          ??? ?? ?? ?? ?? ?? page.JPG
          ??? ??

          ??? ?? 接下來只需要在action中往請求里存入解得列表的sql語句.
          ??? ?? 頁面效果如下:

          ??? ?? ?? ?? ?? page1.JPG

          ???? ?? 個(gè)人覺得這樣的自定義標(biāo)簽,在團(tuán)隊(duì)開發(fā)中效果還是非常明顯的,每個(gè)人都不用去關(guān)心分頁的具體邏輯,只需要自己寫sql語句,然后在頁面引用標(biāo)簽就ok了!

          ??? ?? struts標(biāo)簽還有很多其他的好處,這里就不一一描述了!總之,強(qiáng)烈支持struts標(biāo)簽!

          ??? ? 歡迎各位指點(diǎn)!

          ????

          ???
          ???
          posted on 2006-09-26 13:09 kangxm 閱讀(3641) 評論(25)  編輯  收藏 所屬分類: J2EE

          Feedback

          # re: 我用struts標(biāo)簽的感受 2006-09-26 13:19 sqhe18
          我覺得使用struts標(biāo)簽的最大的問題就是,所見即所得的網(wǎng)頁開發(fā)工具對他沒有支持,如果你用了struts的標(biāo)簽,那這個(gè)jsp在DW里面就面目全非了。  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 13:57 kangxm
          DW 8 對struts的標(biāo)簽就有支持啊!把寫有struts標(biāo)簽的jsp放在Dreamweaver 8里面是一點(diǎn)問題都沒有的!完全不影響布局!更不會(huì)出現(xiàn)面目全非的可能!

          我們現(xiàn)在就這么做的!呵呵!

          至于DW的其他版本,我自己沒試過,不好發(fā)表意見!  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 16:13 onejavaer
          struts標(biāo)簽的缺點(diǎn)最慘莫過于對標(biāo)簽的嵌套支持不好!  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 16:27 lingo
          我的感覺是標(biāo)簽不夠靈活,而且侵入性太大。好多功能沒有提供。而且我希望盡可能不自己寫tld。  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 16:44 fengzl
          自定義標(biāo)簽根本不夠靈活,而且增加程序的閱讀難度~~  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 17:00 xuefeng
          jsp標(biāo)簽看上去很好,真正用起來一點(diǎn)也不好用,因?yàn)榫W(wǎng)頁設(shè)計(jì)人員很難理解這些標(biāo)簽,許多開發(fā)人員還熱衷開發(fā)功能復(fù)雜的標(biāo)簽,把邏輯混在顯示里,導(dǎo)致頁面越來越難以維護(hù)。

          真正好用的view技術(shù)是velocity和tapestry,因?yàn)橥耆珱]有業(yè)務(wù)邏輯,所以強(qiáng)迫你設(shè)計(jì)出一個(gè)清晰的MVC實(shí)現(xiàn),大大簡化了頁面設(shè)計(jì)  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 17:40 Supergoal
          對于美觀的問題,我并不覺得${beanName.name}這樣的寫法有什么別扭,習(xí)慣了就好。而且目前有些IDE是能夠在編譯前就報(bào)這種EL的語法錯(cuò)誤的,像BEA Workshop就可以,而且在輸入beanName之后打“.”,編譯器還會(huì)有智能提示。

          普通的輸出,循環(huán)迭代、比較判斷、鏈接等等功能使用JSTL都可以實(shí)現(xiàn),I18N也同樣可以,在Javascript代碼中輸出信息當(dāng)然也完成能做到。至于Validator框架確實(shí)是Struts的一個(gè)亮點(diǎn),但對于一些不需要支持I18N的應(yīng)用程序來說,每次都得在資源文件中輸入信息略顯麻煩,一般來說我都會(huì)采用JPetStore中的做法,在HttpServletRequest中加入Error的一個(gè)List,然后在JSP中用<c:forEach>來集中顯示。

          對于自定義標(biāo)簽的問題,我是比較贊成使用的,這樣會(huì)使頁面中的Scriplet數(shù)量減少,提高代碼的重用性。但自定義標(biāo)簽并不是Struts的東西,而是J2EE Specification中提供的接口,并應(yīng)用程序供應(yīng)商提供實(shí)現(xiàn)的。

          就我個(gè)人而言,不愿意在JSP中使用Struts標(biāo)簽的原因主要是一個(gè),因?yàn)樗皇菢?biāo)準(zhǔn),是Struts的專有實(shí)現(xiàn),這樣就造成了MVC中的V與Struts的耦合。所以當(dāng)Struts標(biāo)簽和JSTL標(biāo)簽都可以實(shí)現(xiàn)功能的時(shí)候,當(dāng)然會(huì)先考慮JSTL的。  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 20:43 lizongbo


          樓主對jstl的了解還停留在幾年以前的jstl1.0。

            回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-26 23:31 劍事
          用過幾種后感覺STRUTS標(biāo)簽比較差  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-27 09:18 kangxm
          呵呵!感謝大家拍磚!這么多人說Struts標(biāo)簽不好,看來小弟真的應(yīng)該好好去學(xué)習(xí)學(xué)習(xí)JSTL和Velocity了!

          從美觀角度講,確實(shí)是習(xí)慣就好了!也許正因?yàn)槲乙婚_始就學(xué)著Struts,并且一直在用,所以就比較習(xí)慣吧!

          至于Validator框架,我覺得還是Struts的<html:errors/>標(biāo)簽比較占優(yōu)勢,即使你用實(shí)體FormBean的validate方法來進(jìn)行驗(yàn)證,同樣是需要用<html:errors/>標(biāo)簽在頁面上輸出錯(cuò)誤信息的!

          如果 "采用JPetStore中的做法,在HttpServletRequest中加入Error的一個(gè)List,然后在JSP中用<c:forEach>來集中顯示" 。實(shí)現(xiàn)是沒有什么問題,但錯(cuò)誤信息在頁面顯示的位置好像有所限制吧 !最要命的問題是,總是要自己往請求中加入ERRORS的列表!個(gè)人覺得麻煩度也蠻高!

          自定義標(biāo)簽就不說了,肯定是非常必要的!對于代碼重用是突現(xiàn)效果!
            回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-27 09:44 demo java
          用熟練了,什么都好  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-27 12:27 stoneshao
          <c:out value="${beanName.name}" />不是更簡潔嗎?這就是el的功能  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-27 12:39 #
          為什么不直接${beanName.name}  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-27 15:09 多一嘴
          自定義標(biāo)簽就是自定義標(biāo)簽,并不是STRUTS提供的。  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-27 20:09 jackhlp
          DW有網(wǎng)站上面有一個(gè)讓DW支持Struts的插件,可以用那個(gè)  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-28 09:34 冰川
          個(gè)人認(rèn)為與Struts標(biāo)簽沒有關(guān)系,他們不滿Struts多是因?yàn)镴SP的缺陷。  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-09-28 22:25 kangxm
          終于有人站出來為struts說話了!不容易啊!  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-10-26 09:48 demo java
          只要熟悉,直接嵌入代碼我認(rèn)為都沒有問題,只要你能掌握好界面。  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2006-11-03 23:48 syy
          更習(xí)慣JSTL  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2007-09-28 17:06 kimsoft
          現(xiàn)在只用html-el + jstl,其它的都不用。  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2007-10-09 15:40 fenix
          jstl沒有DW支持不是再界面展現(xiàn)方面更難搞?  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2007-11-11 16:25 地方
          jstl  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2008-05-07 15:59 zwm
          struts 標(biāo)簽的嵌套太惡心  回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受[未登錄] 2008-10-21 08:02 zz
          直接用${beanName},如果它的值是<h1>名字</h1>,就會(huì)顯示h1號大的字體,而不是原樣輸出,所以要加<c:out />@#
            回復(fù)  更多評論
            

          # re: 我用struts標(biāo)簽的感受 2009-09-22 10:43 空城
          暫時(shí)還沒有用熟Struts標(biāo)簽,還是覺得jstl比較好用!  回復(fù)  更多評論
            

          主站蜘蛛池模板: 兴义市| 龙陵县| 即墨市| 宜兰县| 商南县| 南丹县| 扶沟县| 万州区| 额济纳旗| 镇坪县| 沭阳县| 九龙坡区| 夹江县| 岳阳市| 洛阳市| 石城县| 宜良县| 正宁县| 织金县| 泰兴市| 都昌县| 阳原县| 武安市| 益阳市| 潜山县| 祥云县| 寻乌县| 平武县| 如东县| 长沙县| 长岭县| 香格里拉县| 德惠市| 贵定县| 客服| 祁门县| 南阳市| 宜州市| 清水县| 革吉县| 宜宾县|