WEB开发——简单标签(EL、JSTL)
EL:(Expression Language)
● 作用:方便存取数据所自定义的语言● 语法:${ 表达式}
------------------------------------------------------------------------------------------------------------------
. 和[ ]两种运算符来存取数据:
● 语法:域对象.属性名
● 语法:域对象["属性名"](属性名中含有特殊字符时需要使用[ ]来获取属性值)
------------------------------------------------------------------------------------------------------------------
隐含对象:(常用的几个。EL表达式获得到到的属性值,会自动进行类型转换)
● pageScope:获得page范围的属性名对应的值
● requestScope:获得request范围的属性名对应的值
● sessionScope:获得sessiont范围的属性名对应的值
● applicationScope:获得application范围的属性名对应的值
● 获得请求中的参数值使用:param(获取单个)、paramValues(获取多个,复选框类)
注意:使用EL表达式获得属性值时,未指明从哪一个域中获得,那么默认从pageContext域开始查找,如果没有找到该属性,则从request域中查找,如果在request域中查找到了该属性,则返回该属性的值,并停止查找
------------------------------------------------------------------------------------------------------------------
保留字:(变量在命名时,应该避开,以免程序编译时发生错误 )
------------------------------------------------------------------------------------------------------------------
算术运算符:
------------------------------------------------------------------------------------------------------------------
关系运算符:
------------------------------------------------------------------------------------------------------------------
逻辑运算符:
● Empty运算符 :来判断值是否为 null 或空(${ empty param.name } )
● 条件运算符 :${ A ? B : C} 当A为true时,执行B;而A为false时,则执行 C
● 括号运算符 :改变执行优先权(${ A * (B+C) } )
------------------------------------------------------------------------------------------------------------------
JSTL:(JavaServer Pages Standard Tag Library,JSP标准标签函数库)
● 作用:利用JSTL和EL取代直接在JSP页面上嵌入Java程序,以提高程序可读性、维护性和方便性
标签函数库主要分为:
------------------------------------------------------------------------------------------------------------------
核心标签库: (Core tag library)
● 导入JSTL的jar包到当前的工程下
● 在需要使用JSTL的jsp页面中引入标签
注意:标签为<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>,其中prefix,表示标签的前缀(可以自定义,一般写为c),uri表示引入的标签库地址
------------------------------------------------------------------------------------------------------------------
表达式操作之<c:out>:(在页面输出内容)
语法:<c:out value="value" />
属性:
● value:需要显示出来的值
● default:如果value的值为null,则显示default的值,没设置default则为空的字符串
● escapeXml:是否转换特殊字符(默认true)
------------------------------------------------------------------------------------------------------------------
表达式操作之<c:set>:(向域中添加属性)
语法:< c:set value="value" var="value"/>
属性:
● value:存放到域中的值
● var: 存入值的变量名称
● scope:作用域(page、request、session、application,未定义时,默认page)
------------------------------------------------------------------------------------------------------------------
表达式操作之<c:remove>:(主要用来移除变量)
语法:<c:remove var="varName" />
属性:
● var:移除的变量名称
● scope:作用域(page、request、session、application当没有指定时,则移除value定义的所有)
------------------------------------------------------------------------------------------------------------------
流程控制之<c:if>:(和if一样,只是没有eles)
语法:<c:if test="表达式" var="varName" > 具体内容 </c:if>
属性:
● test:如果表达式的结果为 true,则执行本体内容,false则相反
● var:用来储存test运算后的结果
● scope:作用域(未定义时,默认page)
------------------------------------------------------------------------------------------------------------------
流程控制之<c:choose>:(和switch一样)
语法:<c:choose><c:when test="">内容</c:when ><c:otherwise>内容</c:otherwise></c:choose>
属性:
● tchoose相当于switch,when相当于case,otherwise相当于default
● test:表达式
------------------------------------------------------------------------------------------------------------------
迭代操作之<c:forEach>:(循环,相当于增强for循环)
语法:<c:forEach items="items" var="var">内容< /c:forEach>
属性:
● items: 需要遍历的对象
● var:每次取出的值存放的对象
● begin: 开始下标位
● end: 结束下标位(包含)
● step: 每次迭代的间隔数
● varStatus: 存放现在指到的相关成员信息(index、number、count、first、last )
------------------------------------------------------------------------------------------------------------------
迭代操作之<c:forTokens>:(相当于字符串的一个方法split,以指定值分隔)
语法:<c:forTokens items="items" delims="delims" var="var">内容</c:forTokens>
属性:
● items: 需要遍历的字符串
● var:每次取出的值存放的对象
● delims:定义用来分割字符串的字符
● begin: 开始下标位
● end: 结束下标位(包含)
● varStatus: 存放现在指到的相关成员信息(index、number、count、first、last )
● step: 每次迭代的间隔数
------------------------------------------------------------------------------------------------------------------
URL操作之<c:import>:(引入外部文件。转发)
语法:<c:import url="url"> 是否传参 </c:import>
属性:
● url: 导向的目标地址
------------------------------------------------------------------------------------------------------------------
URL操作之<c:param>:(在URL内容中传参)
语法:<c:param name="name" value ="value" />
属性:
● name:参数名称
● value: 参数的值
------------------------------------------------------------------------------------------------------------------
URL操作之<c:redirect>:(将客户端的请求从一个JSP网页导向到其他文件,重定向)
语法:<c:redirect url="url" >是否传参</c:redirect >
属性:
● url :导向的目标地址
------------------------------------------------------------------------------------------------------------------
URL操作之<c:url> :(主要用来产生一个URL,方便其他地方调用)
语法:<c:url value="value" var="varName">是否传参</c:url>
属性:
● value: 执行的URL
● var:这个url的名字
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知