您的位置:首页 > Web前端 > JavaScript

JSTL-JSTL核心标签库02

2015-02-26 15:58 363 查看
表达式标签
表达式标签主要包括:<c:out>,<c:set>,<c:remove>和<c:catch>4个标签。

<c:out>输出标签

用于将表达式的值输出到JSP页面,可替代<%=表达式%>
语法格式1:无标签体
<c:out value="expression" [escapeXml="true|false"] [default="defaultValue"]/>

语法格式2:有标签体
<c:out value="expression" [escapeXml="true|false"]>

defaultValue

</c:out>

标签的属性说明

属性类型描述使用EL
valueObject用于指定将要输出的变量或表达式可以
escapeXmlboolean用于指定是否转换特殊字符串,默认值为true,表示转换,例如“<”转换为"<"不可以
defaultObject用于指定当value属性值等于null时,将要显示的默认值。不可以
<c:set>设置标签

用于在指定范围(page,request,session和application)内定义保存某个值的变量,或为指定的对象设置属性值。使用该标签可以在页面中定义变量,而不用在JSP页面中嵌入打乱HTML排班的java代码。
语法1:在scope指定的范围内将变量值存储到变量中。
<c:set value="value" var="name" [scope="page|request|session|application"]/>

语法2:在scope指定的范围内将标签主体存储到变量中。
<c:set var="name" [scope="page|request|session|application"]/>

语法3:将变量值存储在target属性指定的目标对象的propName属性中。
<c:set value="value" target="object" property="propName"/>

语法4:将标签主体存储到target属性指定的目标对象的propName属性中。
<c:set target="object" property="propName>

标签主体
</c:set>


标签的属性说明

属性类型描述引用EL
valueObject用于指定变量值可以
varString用于指定变量名不可以
targetObject用于指定存储变量值或标签主体的目标对象,可以是JavaBean或Map集合对象可以
propertyString用于指定目标对象存储数据的属性名可以
scopeString用于指定变量的作用域,默认值为page不可以
target属性不能直接指定的JavaBean或Map,而应该使用EL表达式或一个脚本表达式指定的真正对象。例如:要为JavaBean "LinkmanForm"的id属性赋值,那么target属性值应该是target="${linkman}",而不应该是target="linkman"。其中linkman是LinkmanForm的对象。

<%@ target prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean class="com.jsoft.LinkmanForm" id="linkman"/>
语法1:定义一个session范围内的变量user,值为mrsoft<br>
<c:set var="user" value="mrsoft" scope="session"/>
输出变量user的值为:${sessionScope.user}
<br>
语法2:定义一个request范围内的变量money,值为12.5*6<br>
<c:set var="money" scope="request">
${12.5*6}
</c:set>
输出变量money的值为:${requestScope.money}
<br>
语法3:为JavaBean "LinkmanForm" 设置各属性并应用<c:out>标签输出各属性值<br>
<c:set value="1" target="${linkman}" property="id"/>
<c:set value="jsoft" target="${Linkman}" property="name"/>
id的属性值为:<c:out value="${linkman.id}"/> <br>
name的属性值为:<c:out value="${linkman.name}"/> <br>
<br>
语法4:为JavaBean "LinkmanForm" 设置各属性并应用<c:out>标签输出各属性值<br>
<c:set target="${linkman}" property="tel">84956778</c:set>
tel属性值为:<c:out value="${linkman.tel}"/>


<c:remove>移除标签
可以从指定的JSP范围内移除指定的变量。语法格式如下:

<c:remove var="name" [scope="page|request|session|application"]/>

var属性:用于指定要移除的变量名称。

scope属性:用于指定变量的存在范围,可选值有page,request,session和application。默认值是page。

<%@ target prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="softName" value="明日科技编程词典" scope="page"/>
移除前输出变量softName的值:<c:out value="${pageScope.softName}" default="softName的值为空"/>
<br>
<c:remove var="softName" scope="page"/>
移除后输出变量softName的值:<c:out value="${pageScope.softName}" default="softName的值为空"/>


<c:catch>捕获异常标签
与Java程序中的try...catch语句类似,用于捕获程序中出现的异常;此外,它还能将异常信息保存在变量中。

语法如下:

<c:catch [var="exception"]>

.....//可能存在异常的代码

</c:catch>

var属性可以指定存储异常信息的变量,这是一个可选项,如果不需要保存异常信息,则可省略该属性。var属性值只有在<c:catch>标签的后面才有效,也就是说,在<c:catch>标签体中无法使用有关异常的任何信息。

<%@ target prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:catch var="exception">
<%
int number=Integer.parseInt(request.getParameter("number"));
out.println("合计金额为:+"521*number);
%>
</c:catch>
抛出的异常信息:<c:out value="${exception}">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: