bean动作和EL表达式语言基础
与bean相关的标准动作:
<jsp:useBean id="person" class="foo.Person" scope="request" />
<jsp:getProperty name="person" property="name" />
<jsp:setProperty name="person" property="name" value="Fred" />
jsp:useBean动作在没有person属性时会自动创建一个person属性,并赋为null
jsp:useBean体:www.2cto.com
<jsp:useBean id="person" class="foo.Person" scope="request">
<jsp:setProperty name="person" property="name" value="Fred" />
</jsp:useBean>
jsp:setProperty在jsp:useBean体中时,只有person属性不存在时才为新创建的属性设置属性,并不改变现存的属性值
建立多态的bean引用:
<jsp:useBean id="person" type="foo.Person" class="foo.Empolyee" scope="request" />
如果使用了type,但没有class,bean必须已经存在
如果使用了class(有或没有type),class不能使抽象类,而且必须有一个无参数的公共构造函数
利用param属性,可以将属性的性质设置为一个请求参数的值,例如:
<jsp:useBean id="person" class="foo.Person" scope="request">
<jsp:setProperty name="person" property="name" param="userName" />
</jsp:useBean>
如果请求参数名与bean中的性质名相同,可以不用指出param属性,例如:
<jsp:useBean id="person" class="foo.Person" scope="request">
<jsp:setProperty name="person" property="name" />
</jsp:useBean>
如果所有请求参数名都与bean性质匹配,还可以如下这么干:
<jsp:useBean id="person" class="foo.Person" scope="request">
<jsp:setProperty name="person" property="*" />
</jsp:useBean>
bean标记会自动转换基本类型和String类型的性质
如果使用脚本,就不会完成自动转换,即是表达式在<jsp:setProperty>标记中也会失败
利用<jsp:getProperty>只能访问bean的性质,不能访问嵌套性质
--------------------------------------------------------------------
EL表达式:形如 ${person.name}
表达式中第一个变量名可以使一个隐式对象或属性
EL隐式对象包括:pageScope,requestScope,sessionScope,applicationScope,param,paramValues,header,headerValues,cookie,initParam,pageContext
属性包括:任意作用域中的属性,包括page,request,session,application
EL隐式对象除了pageContext都是映射对象,pageContext是对pageContext对象的实际引用
用点号"."访问性质和映射值,如${person.name},点号右边变量必须符合java变量名命名规范,该变量是一个映射键或者性质
用[]号访问性质或映射键,除了点号能访问的之外,[]还能访问数组和List中的内容,并且数组和List中的String索引会强制转换为int,例如:
${favoriteFood[0]}和${favoriteFood["0"]都可访问
相关新闻>>
- 发表评论
-
- 最新评论 更多>>