JSP(三)JSTL表达式
2016-01-29 23:19
615 查看
JSTL是需要下载的:https://jstl.java.net/,然后导入工程文件的lib中。
JSTL分为五类,使用哪一类在jsp页面taglib不一样,包括:Core,XML,I18n,数据库,功能。例如使用Core库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
prefix="c"就像HelloWorld一样,随意的,但是确是规范。
1.在Core库中的常用的动作指令:
1)out标签:它最后的作用还是输出(赋值到隐式对象JspWriter),之前会对值进行解析运算,和大多说html标签一样它可以有主体内容,也可以没有。
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]/>或者<c:out value="value" [escapeXml="{true|false}"]>default Value</c:out>
其中,[]包含的属性在实际使用的时候是可选的,escapeXml表示是否把值中的特殊字符<,>,&等转换成相应的字符实体代码(默认情况下是要的),一般值是使用EL表达式,即${value}。
实例:<c:out value="${sessionScope.value}" default="${applicationScope.value}"/>的意思是如果在session中找不到value那就在application中找value,否则就返回空字符串。
2)set标签:就是将一个值给另一个值,设置后,这个页面后面的代码就可以访问这个值了。
功能一:创建一个限域变量,他的值要嘛现造,要嘛引用其他限域对象的值。
功能一:设置对象的值。
3)remove标签:顾名思义就是删除限域变量。
<c:remove var="varName" [scope="{page|request|session|application}"]/>
例如:删除page范围的job变量,<c:remove var="job" scope="page"]/>
值得注意的是,这里删除的只是job变量,并没有删除page里面的对象,所以job1这个另外的变量也可以job原来引用的对象。
2.在条件式动作指令:
1)if标签:判断是否满足标签的条件,如果满足就执行主题里面的内容。
其中var的意思是一个Boolean类型的指,保存条件的正确或者错误,并可以制定scope范围。
例如:<c:if test="${param.username=='yuege' && param.password=='yuege'}">HelloWold!</c:if>表示用户名和密码都对了的话,就显示HelloWorld!
2)choose,when和otherwise标签:
小白的我不常用,略。
3.iterator动作指令(终于到遍历了)
1)forEach标签:可以迭代实现了Collection和Map的对象,Iterator对象,Enumeration对象,普通对象/基本数据类型(8种)的数组。
例如:
2)forTockens标签:
略。
4.格式化动作指令<fmt:..............
略。
5.函数
略。
JSTL分为五类,使用哪一类在jsp页面taglib不一样,包括:Core,XML,I18n,数据库,功能。例如使用Core库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
prefix="c"就像HelloWorld一样,随意的,但是确是规范。
1.在Core库中的常用的动作指令:
1)out标签:它最后的作用还是输出(赋值到隐式对象JspWriter),之前会对值进行解析运算,和大多说html标签一样它可以有主体内容,也可以没有。
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]/>或者<c:out value="value" [escapeXml="{true|false}"]>default Value</c:out>
其中,[]包含的属性在实际使用的时候是可选的,escapeXml表示是否把值中的特殊字符<,>,&等转换成相应的字符实体代码(默认情况下是要的),一般值是使用EL表达式,即${value}。
实例:<c:out value="${sessionScope.value}" default="${applicationScope.value}"/>的意思是如果在session中找不到value那就在application中找value,否则就返回空字符串。
2)set标签:就是将一个值给另一个值,设置后,这个页面后面的代码就可以访问这个值了。
功能一:创建一个限域变量,他的值要嘛现造,要嘛引用其他限域对象的值。
<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>例如:<c:set var="test1" value="test1value"/>(给新建的变量test1赋值为test1Value。<c:set var="test2" value="${requestScope.test2var}" scope="page"/>(创建一个page范围限域变量test2,并引用request范围的test2Var。)
功能一:设置对象的值。
<c:set target="target" property="property“ value="value"/>例如:<c:set target="${student}" property="name“ value="yuege"/>(将对象student的name属性设置值为yuege.
3)remove标签:顾名思义就是删除限域变量。
<c:remove var="varName" [scope="{page|request|session|application}"]/>
例如:删除page范围的job变量,<c:remove var="job" scope="page"]/>
值得注意的是,这里删除的只是job变量,并没有删除page里面的对象,所以job1这个另外的变量也可以job原来引用的对象。
2.在条件式动作指令:
1)if标签:判断是否满足标签的条件,如果满足就执行主题里面的内容。
<c:if test="condition" var="varName" [scope="{page|request|session|application}"]/>或者 <c:if test="condition" [var="varName"] [scope="{page|request|session|application}"]>HelloWold!</c:if>
其中var的意思是一个Boolean类型的指,保存条件的正确或者错误,并可以制定scope范围。
例如:<c:if test="${param.username=='yuege' && param.password=='yuege'}">HelloWold!</c:if>表示用户名和密码都对了的话,就显示HelloWorld!
2)choose,when和otherwise标签:
小白的我不常用,略。
3.iterator动作指令(终于到遍历了)
1)forEach标签:可以迭代实现了Collection和Map的对象,Iterator对象,Enumeration对象,普通对象/基本数据类型(8种)的数组。
<c: forEach [var="varName"] begin="begin" end="end" step="step"> Content </c:forEach >(对Content的重复) <c: forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> Content </c:forEach >(对Content的重复) 例如: <c: forEach var="x" begin="1" end="5"> <c:out value="${x}"/> </c:forEach >(打印1,2,3,4,5) <c:forEach items="${requestScope.students}" var="student"> ${student} </c:forEach >(对requestScope范围的student的遍历)附加属性,可以增加一个叫varStatus来判断此次迭代的次数,有什么用?可以制造出条纹状的表格,更美观等等。
例如:
<table> <tr> <td>name</td> </tr> <c:forEach items="${requestScope.students}" var="student" varStatus=“status”> <c:if test="${status.count%2 == 0}"> <tr style="某种样式1“> </c:if> <c:if test="${status.count%2 != 0}"> <tr style="某种样式2“> </c:if> <td>${student.name}</td> </c:forEach > </table>(单数深色,双数无色)
2)forTockens标签:
略。
4.格式化动作指令<fmt:..............
略。
5.函数
略。
相关文章推荐
- JavaScript世界的一等公民 - 函数
- JavaScript的定义及语法
- javascript的学习整理(二)
- javascript中的匀速运动(两种方式)
- JavaScript设计模式学习笔记2
- js阻止表单提交默认行为的两种方式
- JavaScript的学习整理(一)
- 使用Backbone将两个json对象合并到一个Collection对象中
- javascript实现减速运动
- javascript实现图片的淡入淡出
- javascript实现(分享到xxx)的小实例
- javascript中奇怪事件
- JSP自定义标签笔记
- 部署arcgis for JavaScript环境
- 利用JS做到隐藏div和显示div
- JavaScript跨浏览器绑定事件函数的优化
- js获取项目根路径及get参数
- JSON数据中存在单个转义字符“\”的处理
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
- Javascript 面向对象编程