从毕业到现在,一直用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标签!
欢迎各位指点!