当前位置:编程学习 > JAVA >>

使用JSTL到底有什么好处,为什么要用JSTL?

查看sun的网站,关于JSF的好处一大堆,关于JSTL的理由,好像只有一句: 
“你可以避免在页面中写Scriplet”,呵呵,难道避免Scriplet在页面中出现很重要吗? 

用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的标记混在一起 
是对视力和耐心的巨大考验。 

2。录入难度 
A的字节数是124,B的字节数是164,输入“ <”,“>”这些符号,需要频繁切换大小写,还有那个":"也是一样。B的形势下,录入的字节数更多,内容更难录入。 

3。配置 
A的形势,不需要做额外的配置。显然B需要。 

为什么要JSTL呢? --------------------编程问答-------------------- 简化页面,有利于维护 --------------------编程问答-------------------- 简化页面,利于维护 --------------------编程问答-------------------- 减少美工的学习难度
--------------------编程问答-------------------- 简化页面,利于维护,减少java代码在jsp页面的使用率 --------------------编程问答-------------------- 唯一的好处是提出这种技术的人有饭吃了。

你说法=轮=功有什么好处,为什么那么多人信?有人吹捧不一定都是真理。就象MS当年发明的j#,一定会被历史留下笑柄。
--------------------编程问答-------------------- 貌似现在JSTL也已经过时了   现在页面中用的最多的好像是struts标签吧   
感觉比JSTL好用

楼主的内嵌代码的写法貌似已经过时很多年了。现在基本软件公司都不使用那个了 --------------------编程问答-------------------- jstl是标准,负责前台的显示,同时能够减少程序员的学习,如果不用struts了,那struts的标签也不能用了,换个别的框架,jstl也能用! --------------------编程问答-------------------- 当项目非常大的时候,页面写java代码不易于维护和修改,可读性也很差。
页面上最好不要写java代码,出现问题也不好处理。 --------------------编程问答-------------------- 我想主要目的有三点:
1.在页面里使用JSTL标签可以使美工象处理HTML标签一样对待,增加了读书性。
2.将业务封装到JSTL可以很方便的重用。
3.将数据与显示分离。 --------------------编程问答-------------------- 1.jstl的标签可以无限次的重用,jsp页面嵌入的java代码每次都必须重写
2.简化页面,页面美观
3.有利于美工作业 --------------------编程问答--------------------
引用 10 楼 wnss8888 的回复:
我想主要目的有三点: 
1.在页面里使用JSTL标签可以使美工象处理HTML标签一样对待,增加了读书性。 
2.将业务封装到JSTL可以很方便的重用。 
3.将数据与显示分离。

上面朋友说的很对,呵呵 --------------------编程问答-------------------- 该说的大家の都说啦~~learning --------------------编程问答--------------------
引用 11 楼 linus_lee 的回复:
1.jstl的标签可以无限次的重用,jsp页面嵌入的java代码每次都必须重写
2.简化页面,页面美观
3.有利于美工作业


有利于美工作业  我不赞同?
不要死抱着标准不放好不好,
难道美工看这段代码
<% if (user.getRole() == "member")) { %>
<p>Welcome, member! </p>
<% } else { %>
<p>Welcom   

<c:choose> <c:when test="${user.role == 'member'}">
<p>Welcome, member! </p>
</c:when> <c:otherwise>
<p>Welcome, guest! </p>
</c:otherwise> </c:choose> 这段代码还费劲? 拉到吧。你随便叫一个美工去看看就知道了
将业务封装到JSTL可以很方便的重用。  我也不赞同。业务是放到逻辑层去做的,知道不!而不是放到JSP页面 --------------------编程问答-------------------- 减少页面JAVA代码量 让结构更加清晰 不过不是非得让用JSTL 实际上标签主要讲实用 如果说有些地方用标签没必要 你大可以不用 --------------------编程问答-------------------- 关注.. --------------------编程问答-------------------- 关注 --------------------编程问答-------------------- 很多老的程序员都不喜欢JSTL,认为JSTL能完成的任务java代码都可以完成,他们甚至不去学JSTL。但是JSTL与html、xml更像,美工看JSTL更舒服(就像java程序员看java代码一样)。个人感觉也是价值不大,但是作为SUN的标准最好还是学学,大公司一定会用到的。 --------------------编程问答-------------------- 楼主.
没用JSTL做项目前我和你想法一样.
但是用它做项目之后,我感觉JSTL用起来还是方便.
代码量减少了很多. --------------------编程问答-------------------- 技术问题,技术就是需要进步,总有它的理由的, --------------------编程问答-------------------- 简单易懂 --------------------编程问答-------------------- 据我所知,JSTL是SUN推出的标准,它不依赖与任何框架,只要将jar包引入,并在页面中引入即可使用!

推出JSTL的初衷是为了将前台美工同开发分开,很好的实现分层开发的目标,
我们知道大多数的美工是对标签比较熟悉的,(而早先的程序员比较热衷于"<% %>"这样的方式,呵呵)

本人认为,JSTL的最大优势
2:很好的实现了分层的思想!
1:让页面代码看起来更加整洁,显示逻辑一目了然,
3:对于美工人员来说更加容易学习和掌握,
4:而且你同样可以对其进行自定义扩展!

目前的局面是:
1:老程序员:实现的功能一样,再说又不是什么新语言,又不是非学不行的,干嘛还去学JSTL,“回”字有几种写法?呵呵
2:新人和喜欢追新的人:可能更热衷于JSTL,

我个人认为JSTL会是未来页面显示逻辑的一把利刃

以上纯属个人见解~~~
--------------------编程问答-------------------- html人员也可以写,可能lz不知道,外国有很多地方有专门的html程序员 --------------------编程问答--------------------
引用 10 楼 wnss8888 的回复:
我想主要目的有三点:
1.在页面里使用JSTL标签可以使美工象处理HTML标签一样对待,增加了读书性。
2.将业务封装到JSTL可以很方便的重用。
3.将数据与显示分离。


这个总结的不错。 --------------------编程问答--------------------
引用 7 楼 zhangxu1258 的回复:
貌似现在JSTL也已经过时了   现在页面中用的最多的好像是struts标签吧
感觉比JSTL好用

楼主的内嵌代码的写法貌似已经过时很多年了。现在基本软件公司都不使用那个了


感觉正好相反,现在抛弃struts而用jstl或者freemarker的比比皆是
--------------------编程问答--------------------
引用 25 楼 zgxzowen 的回复:
引用 7 楼 zhangxu1258 的回复:
貌似现在JSTL也已经过时了   现在页面中用的最多的好像是struts标签吧 
感觉比JSTL好用 

楼主的内嵌代码的写法貌似已经过时很多年了。现在基本软件公司都不使用那个了 
 

感觉正好相反,现在抛弃struts而用jstl或者freemarker的比比皆是 


同意~ --------------------编程问答-------------------- <% if (user.getRole() == "member")) { %> 
<p>Welcome, member! </p> 
<% } else { %> 
<p>Welcome, guest! </p> 
<% } %> 

你这只是一小段的scriptlets,当然认为很容易阅读。代码一多,JSTL比scriptlets要清楚多了,而且代码量也要少很多。
我以前将一个网页里面的scriptlets改为jstl,代码最少减少了两倍多。。

而且struts官方都不推荐使用struts的标签,还是使用jstl好。 --------------------编程问答-------------------- jstl 算是过时的技术了. 还是建议使用构架提供的标签,或者模板方式更好.
最开始是为了提供楼上说的那些功能,但实际使用的适合并不能够达到所想的效果.

推荐使用模板标签更好. --------------------编程问答-------------------- 呵呵 路过 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 支持up.up.. --------------------编程问答-------------------- 用多了自然就顺手啦! --------------------编程问答-------------------- 看不懂。。 --------------------编程问答-------------------- 更加规范,遵循XML标准 --------------------编程问答-------------------- jstl会使代码量变少很多。
一大堆java,到jstl,就少多了。 --------------------编程问答-------------------- A会更容易阅读?听说那些美工最怕的
采用B是方便美工的 --------------------编程问答--------------------
引用 22 楼 demonhsh 的回复:
据我所知,JSTL是SUN推出的标准,它不依赖与任何框架,只要将jar包引入,并在页面中引入即可使用!

推出JSTL的初衷是为了将前台美工同开发分开,很好的实现分层开发的目标,
我们知道大多数的美工是对标签比较熟悉的,(而早先的程序员比较热衷于" <% %>"这样的方式,呵呵)

本人认为,JSTL的最大优势
2:很好的实现了分层的思想!
1:让页面代码看起来更加整洁,显示逻辑一目了然,
3:对于美工人员来说更加容易学习和…


<c:forEach items="${orderLinelist}" varStatus="varStatus" var="c_orderLine">
<tr>
<td>${varStatus.count} </td> <td>${c_orderLine.product} </td> <td>${c_orderLine.orderQty} </td>
<td>${c_orderLine.unit} </td>
......
</tr>
</c:forEach>

orderLinelist是有一个ArrayList,里面封装的又是一个对象.
你用A写出来就是
<%
for(int i=0;i<orderLinelist.size();i++){
COrderLineVoView vo = (COrderLineVoView)orderLinelist.get(i);
%>
<tr>
<td><%=vo.getCount()%> </td>
<td><%=vo.getproduct()%> </td>
<td><%=vo.getOrderQty()%> </td>
<td><%=vo.getUnit()%> </td>
        ......
</tr>
<%
}
%> --------------------编程问答-------------------- 个人觉得过程不重要,只要能让人看懂,使用哪用表达方式都是一样的 --------------------编程问答-------------------- 写在jsp代码里面缺点有:

1.不利于维护和阅读(指内容多了之后,当然你上面的是另外一种情况)

2.代码不能重用,违背了面向对象的思想

3.IDE不能识别在jsp页面里出错的java代码,因为IDE是为java类而设计的

4.调试不容易,不如在java类里面方便

5.业务逻辑不明了

6.不容易重构

………………
--------------------编程问答-------------------- 好用这类走进嵌入式学院,就业世界500 --------------------编程问答-------------------- yun./ --------------------编程问答-------------------- 还是有一定好处的,
坏处就是还得去学。 --------------------编程问答--------------------
引用 10 楼 wnss8888 的回复:
我想主要目的有三点: 
 1.在页面里使用JSTL标签可以使美工象处理HTML标签一样对待,增加了读书性。 
 2.将业务封装到JSTL可以很方便的重用。 
 3.将数据与显示分离。

up --------------------编程问答--------------------
引用 23 楼 jjcang 的回复:
html人员也可以写,可能lz不知道,外国有很多地方有专门的html程序员


顶.

代码写的长点就知道好处了. --------------------编程问答-------------------- 都TMD的一派胡言。
用楼上的例子:
1.<c:forEach items="${orderLinelist}" varStatus="varStatus" var="c_orderLine"> 
<tr> 
<td>${varStatus.count}  </td> <td>${c_orderLine.product}  </td> <td>${c_orderLine.orderQty}  </td> 
<td>${c_orderLine.unit}  </td> 
...... 
</tr> 
</c:forEach> 

2.<% 
for(int i=0;i <orderLinelist.size();i++){ 
COrderLineVoView vo = (COrderLineVoView)orderLinelist.get(i); 
%> 
<tr> 
<td> <%=vo.getCount()%>  </td> 
<td> <%=vo.getproduct()%>  </td> 
<td> <%=vo.getOrderQty()%>  </td> 
<td> <%=vo.getUnit()%>  </td> 
        ...... 
</tr> 
<% 

%>


2的代码不能重用1就能重用了?
1比2分离了逻辑?还不是一个屌样子把数据拿到客户端通过循环显示出来?
2就比1容易重构?你懂什么叫重构?

这世上并不是所有的东西都是真正的有用的,但总有些要弄些东西出来混饭吃。 --------------------编程问答-------------------- 在jsp文件中写
<sql:setDataSource url="jdbc:xxxx://xxxxxx" driver="xxxx" user="xxx"
password="xxx"/>
这样的JSTL也叫分离逻辑?也叫可以复用?也叫可以重构?是个人就不会写出这种东西,但恰恰,JSTL就有这种东西。
所以JSTL根本不是人写的。 --------------------编程问答-------------------- 我觉得用什么不重要,只要大家都准循它就可以了。
对jsp中的标签,可能在面向具体问题时,自己实现一个比较有用,
通用的可能就不行了。

主要是jsp中的标签,相当于让程序员再掌握一个语言 --------------------编程问答-------------------- 在补充一点,现在的前台页面,都是富客户端了,很多是基于AJAX或则FLEX。
jsp再缩小。jsf我根本不看好

--------------------编程问答-------------------- 路过,学习 --------------------编程问答-------------------- 按我们公司规范,jsp中不允许出现<%java code%>的 --------------------编程问答-------------------- 不好意思,余震到此。 --------------------编程问答-------------------- 是不是一种规范啊!好便于以后的维护. --------------------编程问答--------------------
引用 10 楼 wnss8888 的回复:
我想主要目的有三点: 
1.在页面里使用JSTL标签可以使美工象处理HTML标签一样对待,增加了读书性。 
2.将业务封装到JSTL可以很方便的重用。 
3.将数据与显示分离。

很全 --------------------编程问答-------------------- 有的标签是很好的,的确可以减少不少java代码,有的标签
例如访问数据库的是不可取的,取齐精华,取齐糟粕! --------------------编程问答-------------------- 确实是简化不少代码,净化了页面,但主要还是看个人的编程的风格,自己喜欢的就是最好的! --------------------编程问答-------------------- 不错,顶 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 没用过jstl --------------------编程问答-------------------- 不过我个人认为编程的大趋势是简单化,可能lz说的两种方式都会被淘汰 --------------------编程问答--------------------
引用 9 楼 cccpu 的回复:
当项目非常大的时候,页面写java代码不易于维护和修改,可读性也很差。 
页面上最好不要写java代码,出现问题也不好处理。

就是就是! --------------------编程问答-------------------- 学习了.. --------------------编程问答-------------------- 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> 
实在太麻烦
<p><%=user.getRole() == "member"?"Welcome, member!":"Welcome, guest!" %> </p>
不也可以
如果自己做taglib就会灵活好多
查询一个表可以写成
<mytag:querytable sql="select * from tablename" pageed=false />
其它什么都不管,样式都交给css --------------------编程问答-------------------- STUDY.... --------------------编程问答--------------------
引用 62 楼 ljq900 的回复:
查询一个表可以写成
<mytag:querytable sql="select * from tablename" pageed=false />
其它什么都不管,样式都交给css


不要把查询数据库的事情交给页面做,J2EE 的核心思想就是分层架构,各尽所能,各司其责。 --------------------编程问答-------------------- 我的开发经验不算久,可是我直到现在,觉得JSTL比较方面,好用。 --------------------编程问答-------------------- 现在我们做的项目都用到jstl标签,这样可以减少很多代码,风格统一,界面和业务处理层分开.感觉很好用. --------------------编程问答-------------------- 没什么用,不学也罢,抽出时间来不如研究下一spring --------------------编程问答-------------------- 任何东西都有它的优缺点,这得看自己的学习习惯和在开发中公司的要求! --------------------编程问答-------------------- * 有利于封装功能,再复用。
* 不会Java的前台开发者也可以使用它们
* 你可以方便地使用第三方标签库提供的功能 --------------------编程问答-------------------- 看着头晕,学了 --------------------编程问答-------------------- 高手真多 学习了 个人喜欢用JSTL --------------------编程问答-------------------- 简化代码,实现页面无脚本(jsp脚本),有利于维护,方便页面美化

总值,我挺喜欢用的,用这舒服 --------------------编程问答-------------------- 收获中呵呵 --------------------编程问答-------------------- 111111111111111111 --------------------编程问答-------------------- jstl的标签可以无限次的重用,jsp页面嵌入的java代码每次都必须重写 
--------------------编程问答-------------------- 学习了,谢谢 --------------------编程问答-------------------- 学习了,谢谢 --------------------编程问答-------------------- 我也是学习呢  谁有一键刷枪挂  MMM我 --------------------编程问答-------------------- 1.在页面里使用JSTL标签可以使美工象处理HTML标签一样对待,增加了读书性。 
2.将业务封装到JSTL可以很方便的重用。 
3.将数据与显示分离。 --------------------编程问答-------------------- 代码,一人有一人的风格和写法,美工看几个人凑在一起的东西不得疯掉?
看标签不是要统一得多?
判断个IF做个循环什么的当然代码量差不多,复杂点的功能标签就简洁多了. --------------------编程问答-------------------- 我现在基本只用JSTL+EL
一项技术,你从一开始就抵触它,必然无法体会它的好处 --------------------编程问答-------------------- 路过...
UP --------------------编程问答--------------------
引用 46 楼 axman 的回复:
在jsp文件中写 
<sql:setDataSource url="jdbc:xxxx://xxxxxx" driver="xxxx" user="xxx" 
password="xxx"/> 
这样的JSTL也叫分离逻辑?也叫可以复用?也叫可以重构?是个人就不会写出这种东西,但恰恰,JSTL就有这种东西。 
所以JSTL根本不是人写的。

确实。。。所以表示还是struts好用。。表示跟逻辑分离,用JSTL感觉很混乱。。。
不知道为什么SUN要推行这个东西。。。 --------------------编程问答-------------------- 是标准的东西,你会了,就有饭吃,这个就是最大的优点,
还有确实jstl不错,页面上一大堆java代码 简直就是恶梦 --------------------编程问答-------------------- 感觉struts标签没jstl流行 --------------------编程问答-------------------- 其实,为了维护,各个模块之前分离! --------------------编程问答-------------------- 呵呵,补充,可以减少jsp页面的物理尺寸,加快下载速度,感觉比struts标签写的是短很多。 --------------------编程问答-------------------- 完全可以使用jstl自定义标签搞掂一切,何必<sql:setDataSource url="jdbc:xxxx://xxxxxx" driver="xxxx" user="xxx" 
password="xxx"/> 

把这种东西写进jsp; --------------------编程问答-------------------- 据我所知,JSTL是SUN推出的标准,它不依赖与任何框架,只要将jar包引入,并在页面中引入即可使用! 

推出JSTL的初衷是为了将前台美工同开发分开,很好的实现分层开发的目标, 
我们知道大多数的美工是对标签比较熟悉的,(而早先的程序员比较热衷于" <% %>"这样的方式,呵呵) 

本人认为,JSTL的最大优势 
2:很好的实现了分层的思想! 
1:让页面代码看起来更加整洁,显示逻辑一目了然, 
3:对于美工人员来说更加容易学习和掌握, 
4:而且你同样可以对其进行自定义扩展! 

目前的局面是: 
1:老程序员:实现的功能一样,再说又不是什么新语言,又不是非学不行的,干嘛还去学JSTL,“回”字有几种写法?呵呵 
2:新人和喜欢追新的人:可能更热衷于JSTL, 

我个人认为JSTL会是未来页面显示逻辑的一把利刃 

以上纯属个人见解~~~  --------------------编程问答-------------------- 因为耗用,所以一直在用。 --------------------编程问答-------------------- A 容易读 是因为你那代码太简单了
      你去读读看那些复杂的

美工会罢工的 --------------------编程问答-------------------- 大家说的都有道理。反过来想下。楼主现在只是写一点点最简单的代码,如果代码量大的时候。当在一个页面上千条代码时,将JAVA代码与HTML代码混到一起写时,这样对后期的维护和管理是非常不方便的。再一个就是可读性,然后就是增加了客户端的压力。 --------------------编程问答-------------------- 学习! --------------------编程问答-------------------- 虚心学习! --------------------编程问答-------------------- 根据具体情况吧。。。意见不统一呀 --------------------编程问答-------------------- 好的jsp页面中是不会或者尽可能少出现java代码的,还是用标签比较好,比如jstl和struts --------------------编程问答-------------------- 好用好用好用
--------------------编程问答-------------------- 好看 --------------------编程问答-------------------- 做分页时,很有用! --------------------编程问答-------------------- 支持 --------------------编程问答-------------------- 主要是方便美工,理论上前台页面展示部分应该是美工在做,程序员只负责后台逻辑代码
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,