在JSP中提供对JavaBean的支持,可以通过操作指令<jsp:useBean>, <jsp:setProperty>以及<jsp:getProperty>来操作JavaBeans
首先用<jsp:useBean>定义要应用的JavaBeans,然后用<jsp:setProperty>来存储属性值,最后用<jsp:getProperty>提取存储的属性:
<jsp:useBean>的语法格式:
<jsp:useBean id="名字" scope="范围" class="类名称" type="类的种类" beanType="Bean的类型" …>
操作语法格式有两种:
<jsp:useBean id="name " scope="scope" typespec /> // 不包含操作主体
<jsp:useBean id="name " scope="scope" typespec>
操作主体
</jsp:useBean>
各个属性的含义:
Id: 用作制定范围内JavaBean对象的标识符,在JSP页面内声明一个Java脚本变量。该值是一个脚本变量,大小写敏感,必须符合Java标示符的命名规则。该值也用在<jsp:setProperty>和<jsp:getProperty>操作的name属性中,指定所访问的JavaBean.
Scope: 指定JavaBean存在的范围。它与PageContext对象获得的范围相同,可能的值如下:
Page: 可以在包含<jsp:useBean>元素的JSP文件以及此文件中的所有静态包含文件中使用Bean,直到页面执行完毕并向客户端发回响应或转到另一个文件为止,该值为默认值。
Request: 从创建Bean开始,就能在任何使用相同Session的JSP文件中使用Bean,直到页面执行完毕并向客户端发回响应或者转到另一个文件为止。
Response: 从创建Bean开始,就能在任何使用相同session的JSP文件中使用Bean,这个Bean存在于整个Session生存周期内,任何分享此Session的JSP文件都能使用同一个Bean。
Application: 从创建Bean开始,就能在任何使用相同application的JSP文件中使用Bean。这个Bean存在于整个application生存周期内,任何在分享此application的JSP文件都能使用同一个Bean。
上述范围内的JavaBean都可以使用的pageContext对象的getAttribute和setAttribute访问。在request, session和application范围内的JavaBean可以分别在Servlet中使用ServletRequest, HttpSession和ServletContext对象的getAttribute和setAttribute访问。
Typespec: 类型规范,它由class, type和beanName属性组合而成,这些属性的组合可以灵活地实现<jsp:useBean>操作,从而定义生成Bean的对象和类型。
Class: Bean的对象名称。在现实要使用的Bean对象时使用class,默认值是Null,而且不能缺少
<jsp:useBean class="Family.Mother" type="Family.Syster" />
Type: Bean对象的类型
beanName: 使用和class参数相似的概念定义Bean时,如果不使用class参数,就要定义beanName参数,这是为了完成Bean的内部代码而使用的属性。
typespec: 的3种参数不能同时使用,使用方法有以下4种:
Class="package.class"; //只定义输入到Bean中的类,type的默认值和class参数相同
Type="package.class" // 这是在定义类之后,为重新定义type而使用的
Class="package.class" type="package.class" //作为决定类(class)和type时使用,如果class和type的设定相同就可以省略type参数
beanName="{package.class, <%=expression %>}" type="package.class" //这个表达式的作用是定义指定的bean-class的Bean名称和type参数。beanName参数可以定义Bean的类名称,也可以利用表达式定义Bean的类名称。
<jsp:setProperty>操作:
<jsp:setProperty>操作用于设置JavaBean中的属性值,在使用<jsp:setProperty>之前,必须先用<jsp:useBean>创建JavaBean。其语法格式如下:
<jsp:setProperty name="Name" //创建的JavaBean实例的名字
{ property = "*" | // 属性名,若为"*", JavaBean中的属性列表与当前请求中的参数列表比较,一旦出现匹配,则使用相应的请求参数调用set方法。如果request对象的参数值中有空值,那么对应的JavaBean属性将不会这顶任何值。
property = "propertyName" param="parameterName" | // 指定JavaBean的某个属性名
property= "propertyName" value=""{string | <%=expression %>}" //设定JavaBean的属性,这个值可以是字符串,也可以是表达式。
}
/>
<jsp:setProperty>的应用又一下3种方式:
<jsp:setProperty name="beanname" property="*" />
<jsp:setProperty name="beanname" property="request 参数" /> 或者
<jsp:setProperty name="beanname" property="bean参数" param="request参数" />
<jsp:setProperty name="beanname" property="bean参数" value="参数值" />
<jsp:getProperty>操作:
<jsp:getProperty>操作应用于设置属性的<jsp:setProperty>操作,它将获得JavaBean的属性值,并将其实用或现实在JSP页面中。在使用<jsp:getProperty>之前,必须先使用<jsp:useBean>创建JavaBean:
<jsp:getProperty name="name" property="propertyName" />
Demos:
<jsp:useBean id="checking" scope="session" class="bank.Checking" >
<jsp:setProperty name="checking" property="balance" value="0.0" />
用户的账号信息为:
<jsp:getProperty name="checking" property="account" />
</jsp:useBean>
路慢慢其休远羲,吾将上下而求所