当前位置: 首页 > news >正文

简单使用JSTL攻略

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在JSP页面上的各种操作都需要用到EL表达式

c引自于http://java.sun.com/jsp/jstl/core,

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

引入以后就可以使用c标签。类似的标签库有以下5种

Corehttp://java.sun.com/jsp/jstl/corec

XML processinghttp://java.sun.com/jsp/jstl/xmlx

I18N formattinghttp://java.sun.com/jsp/jstl/fmtfmt

Database accesshttp://java.sun.com/jsp/jstl/sqlsql

Functionshttp://java.sun.com/jsp/jstl/functionsfn

而c标签库中的标签有14个,大致可分为4类

多用途核心标签:<c:out>、<c:set>、<c:remove>、<c:catch>。
条件控制标签:<c:if>、<c:choose>、<c:when>、<c:otherwise>。
循环控制标签:<c:forEach>、<c:forTokens>。
URL相关标签:<c:import>、<c:url>、<c:redirect>、<c:param>。

1.取变量:          

${myTask }

2.不为空才显示: 

<c:if test="${not empty myTaskList }"> 
</c:if>

3.判断,对比(c:if)

<!--当变量=0时,显示该if里的内容 -->
<c:if test="${myTaskList == '0' }"> 
</c:if>

4.循环显示(c:forEach)

<!--myTaskList是传递的变量,myTaskItem是循环出来的每个变量起的别名,s为变量的下坐标 -->
<c:forEach items="${myTask }" var="myTaskItem" varStatus="s">
</c:forEach>

5.<c:choose>、<c:when>和<c:otherwise>相当于if-else

<c:choose> 
  <c:when test="${empty myTask}">   
   <p>默认数据 </p>
  </c:when> 
  <c:when test="${myTask=='done'}">   
    <p>恭喜您完成任务 </p>
  </c:when> 
  <c:otherwise>   
    <p>请联系管理员  </p>
  </c:otherwise> 
</c:choose>

以上代码等价于

if(myTaks == null){
    <p>默认数据 </p>
}else if(myTaks == "done"){
    p>恭喜您完成任务 </p>
}else{
    <p>请联系管理员  </p>
}

总结,c:choose相当于一个容器,c:when相当于if,c:otherwise相当于else


2个不错的jstl网站

http://www.ibm.com/developerworks/cn/java/j-jstl0211/

http://www.javawind.net/help/html/jstl_el.htm

转载于:https://my.oschina.net/zhangyafei/blog/624896

相关文章:

  • Powershell 编写和运行脚本
  • windos 下端口被占用
  • git与eclipse相关
  • 一个在ActionBar上显示图标和菜单PopupMenu的小示例(19)
  • 管理大数据:监测系统创造新的收益
  • 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求
  • select 遇到的坑
  • iOS开发文件夹--Copy items if needed
  • SEO页面标题Title的优化
  • 优化函数式编程:向 PHP 移植 Clojure 函数
  • mxnet 源码阅读 7
  • ViewController之间的转场和数据传递
  • 基本数据结构:链表
  • LinuxMint17.3配置全局变量
  • Android零基础入门第33节:Android事件处理概述
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • Angular Elements 及其运作原理
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • dva中组件的懒加载
  • ES6核心特性
  • JavaScript服务器推送技术之 WebSocket
  • Laravel 菜鸟晋级之路
  • 笨办法学C 练习34:动态数组
  • 记一次和乔布斯合作最难忘的经历
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 如何编写一个可升级的智能合约
  • 如何合理的规划jvm性能调优
  • 使用 QuickBI 搭建酷炫可视化分析
  • 我建了一个叫Hello World的项目
  • 新书推荐|Windows黑客编程技术详解
  • raise 与 raise ... from 的区别
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​2021半年盘点,不想你错过的重磅新书
  • ​Spring Boot 分片上传文件
  • #if #elif #endif
  • #pragam once 和 #ifndef 预编译头
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (一)u-boot-nand.bin的下载
  • (转)关于pipe()的详细解析
  • (转)详解PHP处理密码的几种方式
  • ./configure,make,make install的作用
  • .net(C#)中String.Format如何使用
  • .NET成年了,然后呢?
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .Net环境下的缓存技术介绍
  • .Net中间语言BeforeFieldInit
  • @Autowired和@Resource装配
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [Android学习笔记]ScrollView的使用
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [DAX] MAX函数 | MAXX函数