在JSP中使⽤JavaBean
1.在JSP中可以像使⽤普通类⼀样访问javabean,例如,通过java脚本实例化javabean、调⽤javabean对象的⽅法等。为了能在jsp页⾯中中更好地集成javabean和⽀持javabean的功能,JSP还提供了三个动作元素来访问javabean,分别为<jsp:useBean>、
<jsp:setProperty>、<jsp:getProperty>,这三个动作元素分别⽤于创建或查javabean实例对象、设置javabean对象的属性值和获取javabean对象的属性值。
⽰例:使⽤动作元素访问javabean
<jsp:useBean id="product" class="com.javaBean.ProductBean"/>
<jsp:setProperty property="price" value="23.5" name="product"/>
<jsp:setProperty property="num" value="2" name="product"/>
<jsp:getProperty property="totalPrice" name="product"/>
上述⽰例使⽤<jsp:useBean>元素创建或查⼀个JavaBean对象product;
使⽤<jsp:setProperty>元素为Javabean对象product的price和num属性赋值;
使⽤<jsp:getProperty>元素获取并输出Javabean对象product的totalPrice属性值。
⽰例:使⽤java脚本访问javabean
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" import="com.javabean.ProductBean"%>
<%
Object Attribute("product");
ProductBean product=null;
if(obj==null){
product=new ProductBean();
pageContext.setAttribute("product",product,pageContext、PAGE_SCOPE);
}else{
product=(ProductBean)obj;
}
product.setPrice(23.5f);
product.setNum(2);
%>
<%=TotalPrice()%>
通过上述两个例⼦对⽐可以看出,使⽤动作元素对javabean的访问没有⼀句java代码,这种⽅式更易于降低对页⾯设计⼈员的编程要求、增强页⾯的可维护性。因此在实际开发中,应该更多地采⽤动作元素访问javabean的⽅式。
2.<jsp:useBean>元素
⽤于在某个指定的作⽤域范围内查⼀个指定名称的javabean对象,如果存在则直接返回javabean对
象的引⽤,如果不存在则实例化⼀个新的javabean对象,并将它按指定的名称存储在指定的作⽤域范围内。
语法:
<jsp:useBean id="beanInstanceName" class="package.class" scope="page\request\session\application"/>
(1)id属性:⽤于指定javabean对象的引⽤名称和其存储域属性名。
(2)class属性:⽤于指定javabean的权限定名。
(3)scope属性:⽤于指定javabean对象的存储域范围,其取值只能是page、request、session和application4个值中的⼀个,默认为page。
⽰例:<jsp:useBean>元素的使⽤
product.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="product" class="com.javaBean" scope="page"/>
</body>
</html>
jsp创建
可查看product.jsp⽂件⽣成的Servlet源⽂件(product_jsp.java),可以看到该元素翻译成的java代码。
3.<jsp:setProperty>元素
⽤于设置javabean对象的属性,相当于调⽤javabean对象的setter⽅法。
语法;
<jsp:setProperty name="beanInstanceName" property="propertyName" value="propertyvalue"/
property="propertyName" param="parameterName"/
property="propertyName"/
property="*"
/>
(1)name属性⽤于指定javabean对象的名称,其值与<jsp:useBean>标签中的id属性值相同。
(2)property属性⽤于指定javabean对象的属性。
(3)value属性⽤于指定javabean对象的某个属性的值,可以是⼀个字符串也可以是⼀个表达式,它将被⾃动转换为所要设置的javabean属性的类型,该属性可选。
(4)param属性⽤于将⼀个请求参数的值赋给javabean对象的某个属性,它可以将请求参数的字符串类型的返回值转换为javabean属性所对应的类型,该属性可选。value和param不能同时使⽤。
⽰例:
(1)
<jsp:setProperty name="product" property="price" value="23.5"/>
(2)
<% float price=23.5f;%>
<jsp:setProperty name="product" property="price" value="<%=price%>"/>
此⽰例形式表⽰使⽤⼀个表达式的value属性值来指定javabean对象的product的price属性的值。
(3)
//假设有⼀请求:localhost:8080/chapter07/product.jsp?priceParam=23.5
<jsp:setProperty name="product" property="price" param="priceParam"/>
此⽰例形式表⽰通过param属性来将请求参数priceParam的值赋给javabean的对象product的price属性,其中,字符串类型的请求参数值将被⾃动转换为与javabean对应属性相同的类型。
(4)
//假设有⼀请求:localhost:8080/chapter07/product.jsp?priceParam=23.5
<jsp:setProperty name="product" property="price" />
此⽰例形式表⽰将javabean对象product的price属性的值设置为与该属性同名(包括名称⼤⼩写要完全⼀致)的请求参数的值。它等同于param属性的值也为price的情况。
(5)
//假设有⼀请求:localhost:8080/chapter07/product.jsp?priceParam=23.5&num=2
<jsp:setProperty name="product" property="*" />
<jsp:setProperty>元素还可⽤于<jsp:useBean>元素起始标签和终⽌标签间,表⽰在此javabean对象实例化时,对其属性进⾏初始化。
⽰例:
<jsp:useBean id="product" class="com.javabean.productBean">
<jsp:setProperty name="product" property="price" value="23.5"/>
<jsp:setProperty name="product" property="num" value="2"/>
</jsp:useBean>
由于嵌套在<jsp:useBean>中的<jsp:setProperty>元素只有在实例化javabean对象时才被执⾏,因此如果<jsp:useBean>元素所引⽤的javabean对象已经存在,嵌套在其中的<jsp:setProperty>元素将不被执⾏,只能在javabean对象初始化时执⾏⼀次。
4.<jsp:getProperty>元素
⽤于读取javabean对象的属性,等同于调⽤javabean对象的getter⽅法,然后将读取的属性值转换成字符串后输出到响应正⽂中。
语法⽰例:
<jsp:getProperty name="product" property="totalPrice"/>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。