这个标签库中包含用于定义新bean、访问bean及其属性的标签。Struts框架提供了多种自定义标签用来在JSP页中处理JavaBean。这些标签被封装在一个普通的标签库中,在文件struts-bean.tld中定义了它的标签库描述器。Bean标签库将标记定义在四个子类别中:
1.创建和复制bean的标记
2.脚本变量定义标记
3.bean显示标记
4.消息国际化标记
一.Bean复制标记
可定义新bean,可复制现有bean,还可从现有bean复制属性。
<bean:define>标记用来:
定义新字符串常数
将现有的bean复制到新定义的bean对象
复制现有bean的属性来创建新的bean
例如:定义一个bean:
<bean:define id=”test”value=”this is a test”/>
源bean在页作用域中被拷贝请求作用域中的另一个bean:
<bean:define id=”targetBean”name=”sourceBean”
scope=”page”toScope=”request”/>
二.定义脚本变量的标记
从多种资源中定义和生成脚本变量,这些资源包括cookie,请求参数,HTTP标头等等。
属性 描述
Id 脚本变量和要定义的页作用域属性的名称
Name cookie/标头/参数的名称
multiple 如果这个属性设置了任意一个数值,所有匹配的cookie都会被积累并存储到一个Cookie [](一个数组)类型的bean里。若无设置,指定cookie的第一个值将作为Cookie类型的值
Value 如果没有匹配的cookie或数值,就返回这个属性指定的默认值
例如:
<bean:cookie id=”myCookie”name=”userName”/>
脚本变量名称是myCookie,用来创建这个属性的cookie的名称是userName。
<bean:header id=”myHeader”name=”Accept-Language”/>
脚本变量名称是myHeader,请求标头的名称是Accept-Language.
<bean:parameter id=”myParameter”name=”myParameter”>
脚本变量名称是myPatameter,它保存的请求参数的名称也是myParameter.
<bean:include>标记将对一个资源的响应进行检索,并引入一个脚本变量和字符串类型的页作用域属性。这个资源可以是一个页,一个ActionForward或一个外部URL。与<jsp:include>的不同是资源的响应被存储到一个页作用域的bean中,而不是写入到输出流。属性如下:
属性 描述
Id 脚本变量和要定义的页作用域属性的名称
Page 一个内部资源forward一个ActionForward
Href 要包含的资源的完整URL
例如:<bean:include id=”myInclude”page=”MyJsp?x=1”/>脚本变量的名称是myInclude,要检索的响应来自资源MyJsp?x=1。
三.显示BeanBean属性
标记库中定义了<bean:write>标记,用来将bean的属性输送到封装的JSP页写入器。这个标记与<jsp:getProperty>类似,属性如下:
属性 描述
Name 要进行属性显示的bean的名称
property 要显示的属性的名称。如果这个属性类有java.beans.PropertyEditor,getAsText()或toString方法会被调用
Scope Bean的作用域,若没有设置,搜索范围是从页到应用程序作用域
Filter 如果设置true,属性中的所有特殊HTML字符都将被转化为相应的实体引用
Ignore 如果设置false,当发现属性时会产生一个请求时间异常,否则返回null
例如:<bean:write name=”myBean”property=”myProperty”scope=”request”filter=”true”/>myBean的属性myProperty将会被显示,作用域为请求,如果发现任何HTML特殊字符都将被转化为相应的实体引用。
四.消息标记和国际化
struts框架支持国际化和本地化。用户在他们的计算机中定义自己所在的区域,当web应用程序需要输出一条消息时,它将引用一个资源文件,在这个文件中所有的消息都使用了适当的语言。一个应用程序可能提供了很多资源文件,每个文件提供了用不同语言编写的消息。如果没有找到所选语言的资源文件,就将使用默认的资源文件。
struts框架对国际化的支持是使用<bean:message>标记,以及使用java.util数据包中定义的Locale和ResourceBundle类来实现Java2平台对这些任务的支持。Java.text.MessageFormat类定义的技术可以支持消息的格式。利用此功能,开发人员不需了解这些类的细节就可进行国际化和设置消息的格式。
posted on 2008-11-01 11:31
老丁 阅读(393)
评论(0) 编辑 收藏 所属分类:
struts