当前访问本站: hits

yjhmily

坚持走自己的路……

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
    从毕业到现在,一直用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页面上真的就不用出现任何的文字描述了!这样的页面代码难道可读性不高吗?下面是我的一个简单页面,感受一下!呵呵 !

       strutsTag.JPG

       另外,你如果在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页面:
                  
                   page.JPG
      

       接下来只需要在action中往请求里存入解得列表的sql语句.
       页面效果如下:

                page1.JPG

        个人觉得这样的自定义标签,在团队开发中效果还是非常明显的,每个人都不用去关心分页的具体逻辑,只需要自己写sql语句,然后在页面引用标签就ok了!

       struts标签还有很多其他的好处,这里就不一一描述了!总之,强烈支持struts标签!

      欢迎各位指点!

    

   
   
posted on 2006-09-26 13:09 kangxm 阅读(3511) 评论(25)  编辑  收藏 所属分类: J2EE

Feedback

# re: 我用struts标签的感受 2006-09-26 13:19 sqhe18
我觉得使用struts标签的最大的问题就是,所见即所得的网页开发工具对他没有支持,如果你用了struts的标签,那这个jsp在DW里面就面目全非了。  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 13:57 kangxm
DW 8 对struts的标签就有支持啊!把写有struts标签的jsp放在Dreamweaver 8里面是一点问题都没有的!完全不影响布局!更不会出现面目全非的可能!

我们现在就这么做的!呵呵!

至于DW的其他版本,我自己没试过,不好发表意见!  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 16:13 onejavaer
struts标签的缺点最惨莫过于对标签的嵌套支持不好!  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 16:27 lingo
我的感觉是标签不够灵活,而且侵入性太大。好多功能没有提供。而且我希望尽可能不自己写tld。  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 16:44 fengzl
自定义标签根本不够灵活,而且增加程序的阅读难度~~  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 17:00 xuefeng
jsp标签看上去很好,真正用起来一点也不好用,因为网页设计人员很难理解这些标签,许多开发人员还热衷开发功能复杂的标签,把逻辑混在显示里,导致页面越来越难以维护。

真正好用的view技术是velocity和tapestry,因为完全没有业务逻辑,所以强迫你设计出一个清晰的MVC实现,大大简化了页面设计  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 17:40 Supergoal
对于美观的问题,我并不觉得${beanName.name}这样的写法有什么别扭,习惯了就好。而且目前有些IDE是能够在编译前就报这种EL的语法错误的,像BEA Workshop就可以,而且在输入beanName之后打“.”,编译器还会有智能提示。

普通的输出,循环迭代、比较判断、链接等等功能使用JSTL都可以实现,I18N也同样可以,在Javascript代码中输出信息当然也完成能做到。至于Validator框架确实是Struts的一个亮点,但对于一些不需要支持I18N的应用程序来说,每次都得在资源文件中输入信息略显麻烦,一般来说我都会采用JPetStore中的做法,在HttpServletRequest中加入Error的一个List,然后在JSP中用<c:forEach>来集中显示。

对于自定义标签的问题,我是比较赞成使用的,这样会使页面中的Scriplet数量减少,提高代码的重用性。但自定义标签并不是Struts的东西,而是J2EE Specification中提供的接口,并应用程序供应商提供实现的。

就我个人而言,不愿意在JSP中使用Struts标签的原因主要是一个,因为它不是标准,是Struts的专有实现,这样就造成了MVC中的V与Struts的耦合。所以当Struts标签和JSTL标签都可以实现功能的时候,当然会先考虑JSTL的。  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 20:43 lizongbo


楼主对jstl的了解还停留在几年以前的jstl1.0。

  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-26 23:31 剑事
用过几种后感觉STRUTS标签比较差  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-27 09:18 kangxm
呵呵!感谢大家拍砖!这么多人说Struts标签不好,看来小弟真的应该好好去学习学习JSTL和Velocity了!

从美观角度讲,确实是习惯就好了!也许正因为我一开始就学着Struts,并且一直在用,所以就比较习惯吧!

至于Validator框架,我觉得还是Struts的<html:errors/>标签比较占优势,即使你用实体FormBean的validate方法来进行验证,同样是需要用<html:errors/>标签在页面上输出错误信息的!

如果 "采用JPetStore中的做法,在HttpServletRequest中加入Error的一个List,然后在JSP中用<c:forEach>来集中显示" 。实现是没有什么问题,但错误信息在页面显示的位置好像有所限制吧 !最要命的问题是,总是要自己往请求中加入ERRORS的列表!个人觉得麻烦度也蛮高!

自定义标签就不说了,肯定是非常必要的!对于代码重用是突现效果!
  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-27 09:44 demo java
用熟练了,什么都好  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-27 12:27 stoneshao
<c:out value="${beanName.name}" />不是更简洁吗?这就是el的功能  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-27 12:39 #
为什么不直接${beanName.name}  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-27 15:09 多一嘴
自定义标签就是自定义标签,并不是STRUTS提供的。  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-27 20:09 jackhlp
DW有网站上面有一个让DW支持Struts的插件,可以用那个  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-28 09:34 冰川
个人认为与Struts标签没有关系,他们不满Struts多是因为JSP的缺陷。  回复  更多评论
  

# re: 我用struts标签的感受 2006-09-28 22:25 kangxm
终于有人站出来为struts说话了!不容易啊!  回复  更多评论
  

# re: 我用struts标签的感受 2006-10-26 09:48 demo java
只要熟悉,直接嵌入代码我认为都没有问题,只要你能掌握好界面。  回复  更多评论
  

# re: 我用struts标签的感受 2006-11-03 23:48 syy
更习惯JSTL  回复  更多评论
  

# re: 我用struts标签的感受 2007-09-28 17:06 kimsoft
现在只用html-el + jstl,其它的都不用。  回复  更多评论
  

# re: 我用struts标签的感受 2007-10-09 15:40 fenix
jstl没有DW支持不是再界面展现方面更难搞?  回复  更多评论
  

# re: 我用struts标签的感受 2007-11-11 16:25 地方
jstl  回复  更多评论
  

# re: 我用struts标签的感受 2008-05-07 15:59 zwm
struts 标签的嵌套太恶心  回复  更多评论
  

# re: 我用struts标签的感受[未登录] 2008-10-21 08:02 zz
直接用${beanName},如果它的值是<h1>名字</h1>,就会显示h1号大的字体,而不是原样输出,所以要加<c:out />@#
  回复  更多评论
  

# re: 我用struts标签的感受 2009-09-22 10:43 空城
暂时还没有用熟Struts标签,还是觉得jstl比较好用!  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: