jstl有什么优势!
查看sun的网站,关于JSF的好处一大堆,关于JSTL的理由,好像只有一句:
“你可以避免在页面中写Scriplet”,呵呵,难道避免Scriplet在页面中出现很重要吗?
反正客户都看不到你的代码。 而且复杂的逻辑有逻辑类,和响应请求的后台Jsp页做处理。Jsp中出现的代码极少,仅仅用于显示。
用J2ee1.4的Doc中举的关于JSTL的例子:
A.使用Scriptlet
<% if (user.getRole() == "member")) { %>
<p>Welcome, member! </p>
<% } else {%>
<p>Welcome, guest! </p>
<% } %>
B.使用JSTL:
<c:choose>
<c:when test="${user.role == 'member'}">
<p>Welcome, member! </p>
</c:when>
<c:otherwise>
<p>Welcome, guest! </p>
</c:otherwise>
</c:choose>
1。可读性:
难道不是A更容易阅读吗?一眼看过去, <%%>内的是Java代码,很清晰,
逻辑是所见即所得不需要转化的。在B中,JSTL的标记和HTML的标记混在一起 需要做逻辑转换,
是对视力和耐心的巨大考验。 虽然B是比较美观,但是B也是变相的逻辑代码!
2。录入难度
A的字节数是124,B的字节数是164,输入“ <”,“>”这些符号,需要频繁切换大小写,还有那个":"也是一样。B的形势下,录入的字节数更多,内容更难录入。
3。配置
A的形势,不需要做额外的配置。显然B需要。
为什么要JSTL呢?
不难看出Jstl有时反而曾加了逻辑复杂程度(阅读者需要做标签到代码的转换)和代码量。
也许有人说:如果是一个很复杂的的逻辑就会导致大量代码。所以用jstl做比较好。
但是如果你把逻辑封装到后台逻辑类和非显示的Jsp中,而Jsp中的代码仅仅是从Session中取出结果然后显示。那么Jsp中嵌套的代码量就会被压缩到很小。
我实在看不出在jsp少量代码时jstl有什么优势!