JSTL实战二之基础
JSTL实战二之基础
一、JSTL的灵感
JSTL的设计灵感来自JavaScript和XPath
WEB编程基于http,而http是简单的协议,所有的数据以字符形式提交,而java是一种强类型的语言,在WEB表现层更需要一种象JavaScript一样弱类型的语言。
而为了兼容jspx,JSTL标签的很多形式会看到XPath的影子,如<c:choose>,刚用JSTL的时候还抱怨JSTL只有
</c:if>
和
<c:whentest='${expr}'>
</c:when>
<c:otherwise>
<c:whentest='${expr}'>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
为什么不来个形如
<c:if test='${expr}'>
<c:else>
</c:if>
之类的东西。
就连在表示字符串时可用单引号和双引号也和javasrcipt惊人的一致
二、数据类型
和javascript基本一致,分为
字符型,用得最多
整数,不带小数点的
浮点数,带小数点的
布尔值,两个值true和false
null null,只是没有象javascript的undefined
数据类型非常简单,类型转换也如人所愿,如null在输出时会自动输出为空字符串,而不是用java时输出恼人的null
三、运算符
. 访问bean和map
[] 访问数组或List,也可用此访问不能用.存取的map或bean,这一点和javascript又是一致,如 map x中有个key叫com.company,此时不能用.存取,可以用x['com.company']
()
? : 三目运算符也是支持的,这样可以写出简洁的表达式
+
-
*
/ 或div
% 或mod
== 或 eq
!= 或 ne
< 或 lt
> 或 gt
<= 或 le
>= 或 ge
&& 或 and
|| 或 or
! 或 not
empty 强大的功能,可以判断一些类型为null或空
fn:funcName()
因为在XML中"<" ">"都是要转化的,所以在jsp中使用时尽量用“ 或 ”字符后面的运算方式
WEB在于表现,所有的东西都要表现为字符,复杂的逻辑在java在分层模块中解决,表现层中就让java退居二级,类javascript的JSTL完全能够胜任
JSTL实战二之基础相关推荐
- 应用程序框架实战二十三:基础查询扩展
上面两篇已经作好准备,本文将进行基础查询扩展.当使用了Entity Framework这样的ORM框架以后,我们查询的核心被集中在IQueryable的Where方法上. 如果UI需要通过姓名查询一个 ...
- 【微信小游戏实战】零基础制作《欢乐停车场》二、关卡设计
1.游戏立项 微信小游戏中有一款<欢乐停车场Plus>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各 ...
- WiFi基础学习到实战(二:WiFi网络“数据链路层”)
欢迎大家一起学习探讨通信之WLAN.上节我们对802.11标准基于OSI模型进行了分析,主要将OSI模型的"数据链路层"定义分为"LLC层"和"MAC ...
- 阿里云Kubernetes实战2–搭建基础服务
前言: 在系列的第一篇文章中,我已经介绍过如何在阿里云基于kubeasz搭建K8S集群,通过在K8S上部署gitlab并暴露至集群外来演示服务部署与发现的流程.文章写于4月,忙碌了小半年后,我才有时间 ...
- 零基础学python全彩版实战答案-零基础学Python(全彩版)
商品描述: 本店出售的图书均是正版二手书,有一些笔记划线,基本是六-九品新左右,基本都没有光盘.介意者请提前咨询客服.本店所有书籍,因买家导致退货退款的,发出运费参照不包邮运费模板由买家承担.如果签收 ...
- CCNP精粹系列之十八--路由映射实战二,博主推荐文章
路由映射实战二 本篇博文和上一篇是紧密结合的,只是在上个试验的基础上作了改动,达到其他的试验效果. 试验二: 在R1上增加一个网段,并发布路由.这里采用三种方法. 如下是第一种,是在试验一的基础上直接 ...
- Taro多端开发实现原理与项目实战(二)
Taro多端开发实现原理与项目实战(二) 多端电商平台项目概述及开发准备 学习了前面的基础知识和进阶后是否跃跃欲试?我们准备了一个电商平台的项目来和大家一起实践使用 Taro 开发电商平台. 项目概述 ...
- 区块链教程(二):基础概念介绍
注:本教程为技术教程,不谈论且不涉及炒作任何数字货币 本系列重点在于以太坊基础知识.以太坊客户端以及以太坊solidity编程,因此博客重点在于以太坊核心知识点的掌握,区块链部分的基础知识可以作为补充 ...
- 《Android Studio开发实战 从零基础到App上线(第2版)》出版后记
2015年11月23日,鄙人在csdn发表了第一篇技术文章,掐指一算距今已有三年.遥想当年开写博客,只是为了总结经验同时分享出来,后来机缘巧合受到出版社编辑邀请并出了书,完全是无心插柳的结果.当初写作 ...
最新文章
- python环境变量值_如何在python中读取Windows环境变量值?
- 事物的级别_浅谈MySQL并发控制:隔离级别、锁与MVCC
- Xamarin.Forms项目无法添加服务引用
- 关于SQL Server 2017中使用json传参时解析遇到的多层解析问题
- ESDF建图库voxblox的安装编译过程
- Javascript 中 JSON 与对象 的相互转换
- 常用Openssl命令
- spark学习-75-源代码:Endpoint模型介绍(6)-Endpoint的消息的接收(2)
- linux git clone 401,Git Eclipse:401未经授权的错误
- ffplay播放器原理剖析
- TB6612FNG电机驱动使用说明
- 计算机组装流程是什么,组装电脑的步骤
- 公交路线查询数据接口简单介绍
- C++练习实例———控制台实现坦克大战小游戏
- java文件一行一行读取_java一行一行写入或读取文件
- 2022-2028全球与中国智能家居监控摄像头市场现状及未来发展趋势
- matlab 双y轴 三y轴
- 程序人生 - 王者荣耀隐身设置,不让好友看到在线状态
- 全球及中国海上撇油系统行业市场深度分析与十四五前景预测报告2022-2028年
- There is no Qt version assigned to project
热门文章
- GLUE基准数据下载
- 解决Ubuntu 下域名解析出现ping: www.baidu.com: Temporary failure in name resolution及重启后/etc/resolvconf文件内容被重写
- html怎么快速收录,如何让百度快速收录网站或文章?
- 通用业务平台设计(五):预警平台建设
- 计算机辅助项目管理实验论文,计算机辅助项目管理课程报告.doc
- 网络变压器检测设备:耐压强度/绝缘电阻检测仪的工作原理
- 最新libvlc4.0+Qt设计视频播放器
- mysql 条码长度_商品条形码(JBarcode)
- Timesheet软件厂商比较图
- 通信模块测试软件,Q/GDW 376.2集中器本地通信模块接口协议测试