jsp:useBean,jsp:setProperty,jsp:getProperty用法
创建一个Bean实例并指定它的名字和作用范围。
n JSP 语法格式如下:
<jsp:useBean
id="beanInstanceName"
scope="page | request | session | application"
{
class="package.class" |
type="package.class" |
class="package.class" type="package.class" |
beanName="{package.class | <%= expression %>}"
type="package.class"
}
{
/> |
> other elements </jsp:useBean>
}
属性以及用法
n1.id="beanInstanceName"
n在所定义的范围中确认Bean的变量,使之能在后面的程序中使用此变量名来分辨不同的Bean ,这个变量名对大小写敏感,必须符合所使用的脚本语言的规定,这个规定在Java Language 规范已经写明。如果Bean已经在别的“<jsp:useBean>”标记中创建,则当使用这个已经创建过Bean时,id的值必须与原来的那个id值一致;否则则意味着创建了同一个类的两个不同的对象。
n2.scope="page | request | session | application"
nBean存在的范围以及id变量名的有效范围。缺省值是page,以下是详细说明:
npage - 能在包含“<jsp:useBean>”元素的JSP文件以及此文件中的所有静态包含文件中使用这个Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。
nrequest - 在任何执行相同请求的Jsp文件中使用这个Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。能够使用Request对象访问这个Bean,比如request.getAttribute(beanInstanceName)。
nsession - 从创建Bean开始,就能在任何使用相同session的jsp文件中使用这个Bean。这个Bean存在于整个Session生存周期内,任何在分享此Session的Jsp文件都能使用同一Bean。注意在创建这个Bean的Jsp文件中“<% @ page %>”指令中必须指定“session="true"”。
napplication - 从创建Bean开始,就能在任何使用相同application的Jsp文件中使用Bean。这个Bean存在于整个application生存周期内,任何在分享此application的Jsp文件都能使用同一Bean.
n3.class="package.class"
n使用new关键字以及class构造器从一个class中实例化一个bean。这个class不能是抽象的,必须有一个公用的,没有参数的构造器。这个package的名字区别大小写。
n 4.type="package.class"
n如果这个Bean已经在指定的范围中存在,那么赋予这个Bean一个的数据开库类型 。如果使用type属性的同时没有使用class或beanName,Bean将不会被实例化。注意package和class的名称区分大小写。
n5.beanName="{package.class | <%= expression %>}" type="package.class"
n使用java.beans.Beans.instantiate方法来从一个class或串行化的模板中实例化一个Bean,同时指定Bean的类型。 Beans.instantiate方法将检查此名称是否表示一个类或一个串行化模板。如果这个Bean是被串行化的,那么Beans.instantiate方法将通过使用一个类装载器读取串行化格式(类似package.class.ser)。
nbeanName可以是package和class,也可以是表达式,它的值会传给Beans.instantiate方法。type的值可以和Bean相同,也可以是它的基类,或者是它所实现的接口。 package和 class 名字区分大小写
设置Bean的属性值.
n JSP 语法格式如下:
<jsp:setProperty
name="beanInstanceName"
{
property= "*" |
property="propertyName" [ param="parameterName" ] |
property="propertyName" value="{string | <%= expression %>}"
}
/>
属性
n1.name="beanInstanceName"
n表示已经在“<jsp:useBean>”中创建的Bean实例的名字。
n2.property="*"
n储存用户在jsp输入的所有值,用于匹配Bean中的属性。
n 3.property="propertyName" [ param="parameterName" ]
n用一个参数值来指定Bean中的一个属性值,一般情况下是从request对象中获得的。其中property指定Bean的属性名,param指定request中的参数名。
n4.property="propertyName" value="{string | <%= expression %>}"
n使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果这个字符串,那么它就会被转换成Bean属性的类型(转换方法见表4.1)。如果是一个表达式,那么它的类型就必须和将要设定的属性值的类型一致。
n如果参数值为空值,那么对应的属性值也不会被设定。此外,不能在同一个“<jsp:setProperty>”中同时使用param和value参数 。
package rmg;
public class student {
private long classNo;
private String name;
private int age;
private boolean sexy;
public student() { //构造函数
classNo=970431;
name="ZZZl";
age=34;
sexy=true;
}
public long getClassNo() {
return classNo;
}
public void setClassNo(long no) {
this.classNo=no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age=age;
}
public boolean getSexy() {
return sexy;
}
public void setSexy(boolean sexy) {
this.sexy=sexy;
}
}
<%--JavaBean.jsp文件,理解useBean动作的scope作用范围 --%>
<html>
<body>
<%-- 引用自己编写的javaBean生成的bean组件 --%>
<jsp:useBean id="student" scope="application" class="rmg.student" />
<%=student.getname()%><br>
<% student.setname("cong"); %>
<%-- 用getProperty动作来返回bean组件的属性值 --%>
<jsp:getProperty name="student" property="classNo" /> <br>
<jsp:getProperty name="student" property="name" /> <br>
<jsp:getProperty name="student" property="age" /> <br>
<jsp:getProperty name="student" property="sexy" /> <br>
<%-- 取属性值 --%>
<%=student.getClassNo() %> <br>
<%=student.getName() %> <br>
<%=student.getAge() %> <br>
<%=student.getSexy() %> <br>
<%--引用Java类库中生成的bean组件 --%>
<jsp:useBean id="date" scope="session" class="java.util.Date" />
<%=date%><br>
</body>
</html>
<jsp:getProperty name="beanInstanceName" property="propertyName" />
属性:
1.name="beanInstanceName"
bean的名字,由<jsp:useBean>指定。
2.property="propertyName"
所指定的Bean的属性名。
<jsp:getProperty>例子
<html>
//声明引用的bean
<jsp:useBean id="calendar" scope="page" class="employee.Calendar" />
<head>
<title>test</title>
</head>
<body>
Calendar of <jsp:getProperty name="calendar" property="username" />
</body>
</html>
浙公网安备 33010602011771号