注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

细节决定成败

 
 
 

日志

 
 

c:set  

2010-10-12 13:29:34|  分类: JSTL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 :Core(核心库)

URI : http://java.sun.com/jsp/jstl/core

前缀 : 

描述 : <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}"/> 

  评论这张
 
阅读(2373)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018