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

javaweb part6---jstl以及el表达式

jstl / Java标准标签库/和EL表达式配合使用
在JSP中取代 Java代码

el表达式运算符号
gt >
lt <
ge >=
le <=
eq ==
ne !=
and &&
or ||
not !
xx.xxx xx["xxx"]
xx?xxx:xxx;

标签库 建议前缀
core/c
xml/x(不在jsp中处理xml文件)
fmt/fmt
sql/sql(不在jsp中操作数据库)
functions/fn

<前缀:标签名 属性名=属性值 属性名=属性值>
核心标签库
<c:out >输出
value 支持el表达式 用来指定输出内容
escapeXml 支持el 默认为true 对特殊符号进行转义的
default 当value为null时,输出default的值;

<c:set>将数据存放到web域中,或者其他的集合之中;
value 支持el. Object
var 不支持el String 指定变量名
scope 不支持el String 指定范围page/request.session.application
target 支持el Object target 和paroperty搭配使用
property 支持el String
<c:set scope="request" var="name" value="rupeng" ></c:set>
scope 和var 搭配使用 request 代表web域范围var代表变量名
通过${requestScope.name}来拿到 value 的值rupeng/
<%Person p1=new Person();
p1.setName("yqw");
request.setAttribute("person", p1);

Person p=new Person();
session.setAttribute("person", p);//将属性名为person的对象P放入request%>
<!-- target 就相当于用findAttribute()依次去四个域中找属性为person的对象.找到既返回-->
<!-- 而对象是Person p.可以设置他的属性property name. 而后取出来 .-->
<c:set target="${sessionScope.person}" property="name" value="jerry" ></c:set>
${person.name}<br/>${sessionScope.person.name}<br/>

<c:remove var="name" scope="request">
删除request这个范围里面,属性名为name的值.

catch 标签
把可能发生异常的代码用<c:catch var="exception"></c:catch>包裹起来
然后调用<c:out ${pageScope.exception}/>输出异常对象 这个对象有三个属性
getMessage/异常信息 getCause/异常原因 getStackTrace/异常的调用数

if 核心标签
test 支持el表达式 Boolean //条件表达式 这个是if标签必须有的.
var 不支持el String 可以声明一个变量接受test的结果
scope 不支持el String 默认存入范围是page、可以指定web域

<c:if test="${age eg 18}" var="rs">
大家都是成年人.
</c:if>
<c:out value="${rs}"/>
这里test为条件表达式 var 表示这个条件表达式的结果
test="empty name" 则代表判断name所指向的对象的属性是否为空.

<c:forEach items="${persons}" var="p">
${p} 就可以输出每一个 persons里面的对象;
</c:forEach>

多个条件表达式
<c:choose>
<c:when test="条件表达式1">
执行代码块
</c:when >
<c:when test-"条件表达式2">
执行代码块
</c:when>
</c:choose> when可以有多个表达式,<c:otherwise>可选

<c:redirect url="/" />

<a href="<c:url value='/index.jsp'>
<c:param name='name' value='999'></c:param>
<c:param name='id' value='10'></c:param></c:url>" >超链接</a>


jstl时,注意调用对象的.name 属性时,name的值与对象的私有变量是没有关系的.由get /set方法来决定.

转载于:https://www.cnblogs.com/yqwstart2017/p/7471131.html

相关文章:

  • webuploader配置
  • SQL Server中的convert来转换时间
  • 日期工具
  • 静态路由作用和添加删除命令
  • jar/war/ear文件的区别
  • 自动装箱和自动拆箱
  • 从Hadoop框架与MapReduce模式中谈海量数据处理(淘宝技术架构)
  • jQuery获取Select选择的Text和Value:
  • unity-------------UI的界面调节
  • SQL : 根据列名求表名等小技巧
  • F5-WAF-12.0
  • 程序员编程艺术第十二~十五章:IP访问次数,回文等问题(初稿)
  • 读取Execl表数据 导入数据库
  • jQuery插件ReverseOrder实现Javascript倒序及了解prependTo函数
  • 洛谷—— P1041 传染病控制
  • 【EOS】Cleos基础
  • C# 免费离线人脸识别 2.0 Demo
  • css系列之关于字体的事
  • docker-consul
  • ES6 学习笔记(一)let,const和解构赋值
  • ES6简单总结(搭配简单的讲解和小案例)
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • express.js的介绍及使用
  • Fabric架构演变之路
  • Golang-长连接-状态推送
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Linux gpio口使用方法
  • rc-form之最单纯情况
  • Vue实战(四)登录/注册页的实现
  • vue--为什么data属性必须是一个函数
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 深度学习入门:10门免费线上课程推荐
  • 思否第一天
  • 一、python与pycharm的安装
  • nb
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (四) 虚拟摄像头vivi体验
  • (算法)N皇后问题
  • (转)使用VMware vSphere标准交换机设置网络连接
  • **python多态
  • 、写入Shellcode到注册表上线
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 分布式技术比较
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET是什么
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [2016.7 day.5] T2
  • [C++随笔录] 红黑树
  • [CSS]CSS 字体属性
  • [LeetBook]【学习日记】数组内乘积
  • [nlp] 多语言大模型不同语种/语系数据的数据配比调节
  • [python]python监听、操作键盘鼠标库pynput详细教程