标签 | URI | 前缀 | 示例 |
Core | http://java.sun.com/jstl/core | c | <c:tagname ...> |
XML processing | http://java.sun.com/jstl/xml | x | <x:tagname ...> |
I18N capable formatting | http://java.sun.com/jstl/fmt | fmt | <fmt:tagname ...> |
Database access (SQL) | http://java.sun.com/jstl/sql | sql | <sql:tagname ...> |
1.<c:out>
库:Core(核心库)
URI:http://java.sun.com/jsp/jstl/core
前缀:c
描述:<c:out>标签是一个最常用的标签,用于在 JSP 中显示数据。它的作用是用来替代通过JSP内 置对象out或者<%=%>标签来输出对象的值。
语法:
没有Body时的语法
<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>
有Body时的语法
<c:out value=”value” [escapeXml=”{true|false}”]>
这里是Body部分
</c:out>
属性:
属性名 |
描述 |
类型 |
是否接受动态值 |
是否支持EL |
是否 必须 |
默认值 |
说明 |
value |
需要显示的值 |
Object |
Y |
Y |
Y |
无 |
用来定义需要求解的表达式。 |
escapeXml |
是否转换特殊字符 |
boolean |
Y |
Y |
N |
true |
用于指定在使用<c:out>标记输出诸如“<”、“>”、“’”、“””和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为true,则会自动的进行编码处理。 |
default |
缺省值 |
Object |
Y |
Y |
N |
无 |
当求解后的表达式为null或者String为空时将打印这个缺省值。 |
Null和错误说明
假若value为null,会显示default的值;假若没有设定default的值,则会显示一个空的字符串。
实例:
------------------------------------------------------------------------------------------------------------------------------------------
Example1
<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>
该示例将从Session查找名为“anyValue”的参数,并显示在页面,若没有找到则显示“no value”。
------------------------------------------------------------------------------------------------------------------------------------------
Example2
您的用户名是: <c:out value=”${user.username}” default=”guest”/>
显示用户的用户名,如为空则显示guest
<c:out value="${sessionScope.username}"/>
指定从session中获取username的值显示;
<c:out value="${username}" />
显示username的值,默认是从request(page)中取,如果request中没有名为username的对象则从session中取,session中没有则从application(servletContext)中取,如果没有取到任何值则不显示
------------------------------------------------------------------------------------------------------------------------------------------
2. <c:set>
库:Core(核心库)
URI:http://java.sun.com/jsp/jstl/core
前缀:c
描述:<c:set>标签用于为变量或JavaBean中的变量属性赋值的工作。这个标签用于在某个范围(page、request、session、application等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。他类似于<%request.setAttrbute("name","value");%>
语法:
语法1: 没有body
将value的值存储至范围为scope的varName变量之中
<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>
语法2: 有body
将body内容存储至范围为scope的varName变量之中
<c:set value="value" [scope="{page|request|session|application}"]>
body.....
</c:set>
语法3: 将value的值存储至target对象属性中
<c:set value="value" target="target" property="propertyNmae"/>
语法4: 将body内容的数据存储至target对象属性中
<c:set target="target" property="propertyNmae">
body....
</c:set>
Ø Null 和 错误处理:
语法3和语法4会产生异常错误,有以下两种情况:
.target 为null
.target 不是java.util.Map或JavaBean对象
假若value为null时:将由存储变量改为移除变量
.语法1: 由var和scope所定义的变量,将被移除
.若scope已指定时,则PageContext.removeAttribute(varName,scope);
.若scope未指定时,则PageContext.removeAttribute(varName);
.语法3:
.假若target为Map时,则Map.remove(property);
.假若target为JavaBean时,propertye指定的属性为null
注意: var和scope这两个属性不能使用表达式来表示,我们不能写成 scope="${ourScope}"或var="${a}"
属性:
属性名 |
描述 |
类型 |
是否接受动态值 |
是否支持EL |
是否 必须 |
默认值 |
说明 |
value |
要被存储的值 |
Object |
true |
Y |
否 |
无
|
被计算的表达式 |
var |
变量名 |
String |
false |
N |
否 |
无
|
被导出的保存了value属性计算结果的范围变量的名称 |
scope |
范围 |
String |
true |
N |
否 |
page |
var的JSP范围 |
target |
目标 对象 |
String |
true |
Y |
否 |
无
|
要设置属性的对象。必须是JavaBean对象或java.util.Map对象 |
property |
指定target对象属性 |
Object |
true |
Y |
否 |
无
|
要设置的target对象的属性的名称 |
实例:
------------------------------------------------------------------------------------------------------------------------------------------
Example1
<c:set value="this is andy" var="oneString"/>
该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。
------------------------------------------------------------------------------------------------------------------------------------------
Example2
<c:set target="${cust.address}" property="city" value="$"/>
将对象cust.address的city属性值保存到变量city中。
------------------------------------------------------------------------------------------------------------------------------------------
Example3
设置不同的属性,并且指定它们的范围:
<c:set value="10000" var="maxUser" scope="application"/>
<c:set value="20" var="maxIdelTime" scope="session"/>
<c:set value="next.jsp" var="nextPage" scope="page"/>
------------------------------------------------------------------------------------------------------------------------------------------
Example4
<c:set var="bid" value="${param.bookId}"/>
<jsp:setProperty name="bookDB" property="bookId" value="${bid}" />
------------------------------------------------------------------------------------------------------------------------------------------
Example5
<% Foo foo = new Foo(); pageContext.setAttribute("foo", foo); %>
<c:out value="${foo.date}"/><br> <c:set target="${foo}" property="day" value="1"/>
<c:out value="${foo.date}"/>
------------------------------------------------------------------------------------------------------------------------------------------