一個應用中有兩個頁面使用了JSTL的c:out輸出,就類似這么簡單三句
<c:if test="${!empty error}">
<h2><c:out value="${error}"/></h2>
</c:if>
應用在本地MyEclipse中的Tomcat6跑得正常,但放到CentOS的Tomcat7上出現了錯誤
The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
於是網上一頓找,按網文指點把JSTL需要的jstl.jar和standard.jar放到服務器的Tomcat7的lib目錄下,重啟T,結果還是無效,濤聲依舊,錯誤依舊。
按另一網文指示,更煩,需要找一批TLD文件到web-inf下,還要在web.xml中進行配置。
這時有點火了,JSTL也沒啥優勢,還值得為它費這么大力氣?
聯想到應用使用了Struts的Template,其它東西沒有用到但是所有包和TLD都配置好了,於是決定用Struts的bean:write替代了JSTL的C:out,上面的三段話就成了
<logic:present name="error">
<h2><bean:write name="error"/></h2>
</logic:present>
再發布一次,這回成了,出錯的頁面不搗亂了。
JSTL,既然你不好用,那就讓好用的來取代你,除非你不可取代。
老板對員工是這樣,程序猿對框架API組件等也是這樣。