jstl--->Core 核心标签库->运算式操作
-->out、remove、set、catch
<c:out>:用来显示资料的内容
语法1:没有本体的内容 <c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />
语法2:有本体的内容<c:out value="value" [escapeXml="{true|false}"]>default
属性:value:需要显示出来的值
default:如果value值为null,则显示default的值
escapeXML:是否转换特殊字元,默认情况下<c:out>会将<、>、'、"、&转换为< >' " &,如果不想转换,只要设定escapeXML为false就可以了
举个栗子:
<c:out value="Hello JSP 2.0 !! " />
<c:out value="${ 3 + 5 }" />
<c:out value="${ param.data }" default="Nodata" />
<c:out value="<p>假装有文字 </p>" />
<c:out value="<p>假装有文字 </p>" escapeXml="false" />
Hello JSP 2.0 !!
8
显示传过来的data值,若为空,显示Nodata
<p>假装有文字 </p>
假装有文字
<c:set>:主要用于将变数存储至jsp范围中或者Javabean的属性中
语法1:将value的值存储至范围为scope的valueName变量当中 <c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>
语法2:将文本内容的资料存储至范围为scope的valueName变量当中 <c:set var="varName" [scope="{ page|request|session|application }"]> 本体内容... </c:set>
语法3:将value的值存储至target的属性当中 <c:set value="value" target="target" property="propertyName" />
语法4:将文本内容的资料存储至target属性当中 <c:set target="target" property="propertyName"> 本体内容... </c:set>
属性:
value:要被存储的值
var:要存入的变量名
scope:var变数的jsp范围 target:为Javabean或者Java.util.Map
property:指定target的属性
举几个栗子
<c:set var="number" scope="request" value="${1 + 1}" />
<c:set var="number" scope="session" /> ${3 + 5} </c:set>
<c:set var="number" scope="request" value="${ param.number }" />
<c:set target="User" property="name" value="${ param.Username}" />
将2存入request的number中
将8存入session的number中
将${ param.number }存入request的number中,若${ param.number }为null,移除request中的number属性
将${ param.number }存入request的number中,若${ param.number }为null,将移除request中的number属性设为null
<c:remove>移除变量
语法: <c:remove var="varName" [scope="{ page|request|session|application }"] />
属性: var:要移除的变量名称
scope:var的jsp范围
栗子 <c:remove var="number" scope="session" />
将number从session中移除,若我们不设置scope,则<c:remove>将会从page、request、session然后application的顺序寻找并删除
<c:catch> 主要用来处理产生错误的例外状况,并将错误讯息存储起来
语法 <c:catch [var="varName"] > 错误信息... </c:catch>
属性 var:用来存储错误信息的变量名
说明:用<c:catch>将可能发生错误的部分包住,类似try、catch、一旦发生异常,错误信息就会被保存在varName中,只有报错被包住的程序会被终止忽略,但整个页面不会 被终
止,就是说怎么样页面都会有内容,不会报500/404/400之类的错,错误不会被前端看见,不至于整个页面崩掉