JSTL表达式语法简介即简单使用

写在前面

JSTL:是一种比比EL更加强大的语法,这篇文章主要介绍JSTL概念及其简单使用,想了解EL语法可以移步至这篇文章:EL表达式语法

使用

使用前需要引入2个jar :(点击jar包直接下载)

然后在jsp头部引入tablib

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

其中prefix=”c”代表前缀,在没有特别声明的情况下一般用c。

核心标签库

三个:通用标签库、条件标签库、迭代标签库

一、通用标签库

  1. <c:set>:赋值

在某个作用域之中(4个范围对象),给某个变量赋值

//以前是这样子赋值的
<%request. setAttribute("name"," zhangsan") ;%> 
//<c:set var="变量名” value="变量值” scope=" 4个范围对象的作用域”/>
//现在是这样子赋值的
<c:set var= "name " value= "zhangsan" scope= "request"/>

除此之外,还可以在某个作用域之中(4个范围对象),给某个对象的属性赋值,还可以给map对象的属性赋值。值得注意的是,它还可以给不存在的变量赋值,但是不可以给不存在的对象赋值。

给map对象赋值
<c:set target=" $ {requestScope.countries}" property="cn" value="中国"/>
//<c:set target="对象"       property="对象的属性"         value="赋值"/>
  1. <c:out>:用于显示操作
//传统EL
 ${requestScope.student }<br/>
//c:out方式: 
<c:out value= "${requestScope. student}"/>

那么<c:out>相较于传统EL的优势在于哪?
a:<c:out>其实后面还有一个参数default(默认值),当你显示的这个对象不存在的时候,他会显示默认值

//假设我们有student这个对象而没有stu这个对象,所以<c:out>没有stu的值可以显示
// 那么他就显示后面default的值zs
<c:out value= "${requestScope. stu}" default="zs"/>

b:excapXml:用于设置超链接

true:<c:out value='<a href= "https://www.baidu.com">百度</a>' escapeXml="true"/>
false:<c:out value='<a href= "https://www.baidu.com">百度</a>' escapeXml="false"/>

运行效果如图
在这里插入图片描述
如果你的值设置为true,那么他就会将链接和字符显示出来,如果设置为false,则会显示超链接。

  1. <c:remove />:删除值
//设置一个值a
 <c:set var="a" value= "b" scope= "request"/><br/>
//删除值a
<c:remove var="a" scope= "request ' '/>

二、条件标签库

  1. <c:if>:boolean
<c:if test="${10>2}" scope="request" var= "result" >
${result} 
</c:if>
//这段代码会判断test里的内容,然后输出var里的内容(true/fales)

输出结果为true,其中作用域(scope=“request”)可以删除不写,理由设计到EL的内容,在本文开头有写,这里截出来方便查看
在这里插入图片描述

  1. <c: choose>:类似于java语法中的switch,通常和</c:when>、</c:otherwise>联用
    我们用一个栗子来更好的理解他
//定义一个对象
<c:set var= "role" value="学生” scope= "request"></c:set>

<c: choose>

//当取到的值为“老师”时执行老师代码
<c:when test= "${ requestScope.role == '老师'}">
老师代码...
</c :when>

//当取到的值为“学生”时执行学生代码
<c:when test= "${ requestScope.role eq '学生' }">
学生代码...
</c:when>

//当取到的值为“管理员”时执行管理员代码
<C: otherwise>
管理员等其他人员....
</c:otherwise>

<c: choose/>

注意注意注意
在使用test=" " 一定要注意后面是否有空格,例如:

test=" ${10>2}"      //true
test=" ${10>2}  "    //非true

三、迭代标签库

这里讲一个简单的**<c:forEach>**
先上代码

//相当于for(int i=0;i<5;i++)
<c:forEach begin="0" end="5" step="1" varStatus= "status">
//index为当前运行代码索引(标签号)
${status. index} test..
</c: forEach>

输出结果
0 test… 1 test… 2 test… 3 test… 4 test… 5 test…

ok,简单分享到这里,这是我本人的学习总结笔记,有错误的话欢迎大佬指出,本人会及时改正。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值