chap6 jsp页面中使用JavaBean组件

chap6 jsp页面中使用JavaBean组件
(1)JavaBeansbean):在jsp中作为将要显示在web页面中的动态内容的容器。一般代表特定事物。
(2)用途1:当jspservlet结合时,bean可由servlet进行带数据的创建和初始化,再传递给jsp页面(把bean的数据添加到response中)。
(3)用途2:在纯jsp应用中,bean也可用于捕捉和验证用户的输入。
(4)jspbean的支持:1>定义了大量相关的标准action2>jstl EL中可以把bean作为变量。
6.1 什么是bean
(1)bean是遵循JavaBeans规范中定义的一系列guidelineJava class,可以在更大的app.中作为组件使用。
(2)用途1:在使用servlet作为所有business logicfrontend时,bean一般由business logic代码创建,再传递给jsp页面(把bean的数据添加到response中)。[详见]chap18chap19
(3)用途2:在jsp页面中直接创建bean. []这是本章主要内容。
(4)JavaBeans的一些说明:
1> 对于bean class,应当总使用package name,以方便在jsp页面中以portable的方式使用bean
2> bean class应该有一个无参数的constructor,只需要class name就能创建一个bean
3> 通过gettersetter方法(accessor方法),访问bean的属性(类的variable):get/set+属性名称(首字母大写)。 Getter对应readablesetter对应writable,通过两者组合可以使属性read-onlywrite-only,或read/write
4> bean class应当实现java.io.Serializablejava.io.Externalizable接口,使一个tool能够保存和重置bean的状态。
(5)bean属性的一些说明:
1> bean属性:bean拥有的数据。名称区分大小写,以小写字母开头。对应特定的Java数据类型。
2> jsp页面中使用bean所需知道的:[1]class名称;[2]属性名称;[3]属性的数据类型;[4]属性的访问方式(read-only?write-only?read-write?);[5]对每个属性代表的data的描述。
6.2 jsp页面中声明bean
[例子]       class="com.ora.jsp.beans.motd.CartoonBean" />
(1)jsp的标准action之一,创建了class类的、名为idbean class instance
(2)class属性:标识bean class类。
(3)id属性:标识bean classinstance名称。在页面中必须是唯一的。
6.3 读取bean属性
两种方法:
6.3.1 使用 action
[例子]
      property="fileName" />">
(1)获取bean属性的当前值,并把该值直接插入到response body中。
(2)name:标识声明的特定bean instance(本例中的cartoon)。
(3)property:标识所需的属性
(4)本例中,fileName属性值被作为html元素的src属性值的一部分。[]元素被用作元素的src的属性值,这不符合html语法,但是符合jsp语法,而container并不解释template text的含义。当jsp页面被处理时,action元素被bean的属性值替换。因此,产生的html可能是:dilbert2731150011029.gif">[]但不能够使用某个action元素为另一个action元素的属性赋值。
6.3.2 使用jstlEL
[例子]
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

">
(1) 创建的bean(本例中cartoon)可以作为EL的变量(${cartoon.fileName}
(2)
someBean(本例中cartoon)的aPropery.aProperyOfThePropery(本例中fileName)属性值赋给value
[采用哪种方法]
主要根据偏好。一直包括在jsp spec.中;最近才进入jstl spec.,更加灵活,略为简洁。如果重新开发一个app.,使用〉吧。
6.3.3 jsp中包含图像
不应该使用jsp在页面中包含动态图像:
[理由1]推荐在jsp产生的response中只包括一种类型的内容(尽管http response可以包括不同类型的多个部分),因此不应该把htmlimage混在一个response中。浏览器对于带有元素的html response,对每一个image重新发送一个request,再把htmlimage合并。
因此为了在
jsp产生的response中包含image,只需要像html一样。只是uri是在runtime时决定的。
[理由2]jsp用于text响应,而不是binary响应。如果需要动态产生图像,应该使用servlet。在servlet中,可以把表示servleturi添加到元素中。例如:
6.4 设置bean属性
[例子
]
      value="thoughts" />
……

…...
      value="quotes" />
(1)设置beanproperty指定的属性。
(2)name:中的id属性匹配
(3)property:标识设置哪一个属性。
(4)value:包含用于该属性的值。
(5)用于把message插入到response中。
6.4.1 自动类型转换
(1)对于属性值,container一般会把text值转换为其它Java types。但对于复杂的type,仍需要编程。
(2)使用时,container自动把text转换为某一Java type,使用的函数[参见]本书表6.3
(3)对于java.util.Datejsp spec.定义了如何开发“property editor”来处理转换。[参见]本书chap20
(4)的返回值总被转换成String

你可能感兴趣的:(JSP学习笔记)