为什么提出jstl标签?

Jsp中包含html标签+java片段使得jsp页面比较乱。
提出:能不能把<% %>java片段用标签替换 jsp页面更简洁

使用注意:

1.<%%>中放的代码是纯java代码,在其中是不能放jstl标签代码的

2.${}中是不能嵌套使用${}的

3.jstl标签是可以放el表达式的

<!-- 引入jstl标签库 -->

JSTL-Library—>jstl-impl.jar—>META-INF—>c.tld

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:
1.表达式控制标签:out、set、remove、catch
2.流程控制标签:if、choose、when、otherwise
3.循环标签:forEach、forTokens
4.URL操作标签:import、url、redirect

下面<% %>中间的代码是测试用

c_out

<%
//out.println("hello,world");
//如果我们的域对象中有相同的属性名 c:out的优先级是pageContext>request>session>application
request.setAttribute("abc","你好<a href='http://www.sohu.com'>sohu</a>");
//session.setAttribute("abc","你好");
// application.setAttribute("abc","你好");
// pageContext.setAttribute("abc","你好"); User u=new User();
u.setName("小明");
u.setPassword("123");
request.setAttribute("user1",u);
%> <c:out value="hello,world"></c:out>
<h3>如何输出request/session/application/pageContext域对象的数据</h1>
<!--escapeXml指定是否按照html样式显示,默认【true】表示文本 【false】表示html样式 -->
<c:out value="${abc}" default="没有值" escapeXml="false"></c:out> <!-- 等同于 request.getAttribute("abc").toString(); -->
<h3>如何输出一个对象的值</h3>
<c:out value="${user1.name }"></c:out> <!-- 等同于((User)request.getAttribute("user1")).getName(); -->

<c:set>

这个标签用于在某个范围(page,request,session,application等)设置某个值
<c:set var="abc" value="中国,北京" scope="request"></c:set> <!--等价于request.setAttribute("abc","中国,北京") -->
<c:out value="${abc}"></c:out>

<c:remove>

 <%
request.setAttribute("a","你好");
%>
<h3>输出</h3>
<c:out value="${a}"></c:out>
<h3>remove</h3>
<c:remove var="a" scope="request" />
<c:out value="${a}" default="没有值"></c:out>

<c:choose>

 <%
request.setAttribute("abc","你好<a href='http://www.sohu.com'>sohu</a>");
User u=new User();
u.setName("小明");
u.setAge("123");
request.setAttribute("user1",u);
%> <c:choose>
<c:when test="${user1.age<110 }">
小于
</c:when>
<c:when test="${user1.age>110 }">
大于
</c:when>
<c:otherwise>
其他
</c:otherwise>
</c:choose>

<c:foreach>

 <h3>foreach的取法</h3>
<!--${all}表示域对象的那个属性(一般是一个集合) var="user"表示具体的对象 -->
<c:forEach items="${all}" var="user">
<c:out value="${user.name}"></c:out>
<c:out value="${user.password}"></c:out>
</c:forEach>
<h3>第二种迭代:1 to 10</h3>
<c:forEach var="i" begin="1" end="10" >
<c:out value="${i}"></c:out>--
</c:forEach>
<h3>第三种迭代:1 to 10 step=3</h3>
<c:forEach var="i" begin="1" end="10" step="3" >
<c:out value="${i}"></c:out>--
</c:forEach>

<c:if>

   <%
request.setAttribute("a","hello");
request.setAttribute("age", "56");
%>
<h1>判断字符串</h1>
<c:if test="${a=='hello'}">
ok
</c:if>
<c:if test="${a!='hello'}">
no
</c:if>
<h1>判断数值</h1>
<c:if test="${age==56}">
等于56
</c:if>
<c:if test="${age>40 and age<60}">
age>40 and age<60
</c:if>

<c:fortokens>

   <c:forTokens items="12;23;你好;haha" delims=";" var="temp">
${temp}
</c:forTokens>

最新文章

  1. (原创)JAVA多线程一传统多线程
  2. SqlServer传输数据到ORACLE,SSIS
  3. php反射机制
  4. Atitit.api参数传递的设计
  5. js原生选项卡(自动播放无缝滚动轮播图)二
  6. Net4.0---AspNet中URL重写的改进(转载)
  7. [css]兼容性
  8. java23 XML
  9. jQuery 事件 方法
  10. 【转】Usage of sendBroadcast()
  11. hibernate Restrictions用法
  12. SVN:重命名文件之后不允许提交
  13. Azure环境中Nginx高可用性和部署架构设计
  14. Elasticsearch聚合——aggregation
  15. web应用程序+HTTP协议
  16. Debian 为firefox安装flash插件 以及 音频驱动
  17. 好用的 over the wall教程
  18. case insensitive in php
  19. 元组(tuple)基本操作
  20. Hyperldeger Fabric踩过的坑

热门文章

  1. Java Synchronized Blocks
  2. ::after::before清除浮动原理
  3. JS在IE和FireFox之间常用函数的区别小结
  4. java错误
  5. 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)
  6. .NET应用服务器
  7. Yii的学习(1)--安装配置
  8. [转载]TFS入门指南
  9. Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
  10. 搭建CnetOS6.5x64最小系统及在线yum源的配置