1.在JSP中可以像使用普通类一样访问javabean,例如,通过java脚本实例化javabean、调用javabean对象的方法等。为了能在jsp页面中中更好地集成javabean和支持javabean的功能,JSP还提供了三个动作元素来访问javabean,分别为
示例:使用动作元素访问javabean
上述示例使用
使用
使用
示例:使用java脚本访问javabean
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" import="com.javabean.ProductBean"%>
<%
Object obj=pageContext.getAttribute("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);
%>
<%=product.getTotalPrice()%>
通过上述两个例子对比可以看出,使用动作元素对javabean的访问没有一句java代码,这种方式更易于降低对页面设计人员的编程要求、增强页面的可维护性。因此在实际开发中,应该更多地采用动作元素访问javabean的方式。
2.
用于在某个指定的作用域范围内查找一个指定名称的javabean对象,如果存在则直接返回javabean对象的引用,如果不存在则实例化一个新的javabean对象,并将它按指定的名称存储在指定的作用域范围内。
语法:
(1)id属性:用于指定javabean对象的引用名称和其存储域属性名。
(2)class属性:用于指定javabean的权限定名。
(3)scope属性:用于指定javabean对象的存储域范围,其取值只能是page、request、session和application4个值中的一个,默认为page。
示例:
product.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
可查看product.jsp文件生成的Servlet源文件(product_jsp.java),可以看到该元素翻译成的java代码。
3.
用于设置javabean对象的属性,相当于调用javabean对象的setter方法。
语法;
property="propertyName" param="parameterName"/ property="propertyName"/ property="*" /> (1)name属性用于指定javabean对象的名称,其值与 (2)property属性用于指定javabean对象的属性。 (3)value属性用于指定javabean对象的某个属性的值,可以是一个字符串也可以是一个表达式,它将被自动转换为所要设置的javabean属性的类型,该属性可选。 (4)param属性用于将一个请求参数的值赋给javabean对象的某个属性,它可以将请求参数的字符串类型的返回值转换为javabean属性所对应的类型,该属性可选。value和param不能同时使用。 示例: (1) (2) <% float price=23.5f;%> 此示例形式表示使用一个表达式的value属性值来指定javabean对象的product的price属性的值。 (3) //假设有一请求:http://localhost:8080/chapter07/product.jsp?priceParam=23.5 此示例形式表示通过param属性来将请求参数priceParam的值赋给javabean的对象product的price属性,其中,字符串类型的请求参数值将被自动转换为与javabean对应属性相同的类型。 (4) //假设有一请求:http://localhost:8080/chapter07/product.jsp?priceParam=23.5 此示例形式表示将javabean对象product的price属性的值设置为与该属性同名(包括名称大小写要完全一致)的请求参数的值。它等同于param属性的值也为price的情况。 (5) //假设有一请求:http://localhost:8080/chapter07/product.jsp?priceParam=23.5&num=2 示例: 由于嵌套在 4. 用于读取javabean对象的属性,等同于调用javabean对象的getter方法,然后将读取的属性值转换成字符串后输出到响应正文中。 语法示例: