Struts标记库

JSP视窗组件所使用的struts标记库由四类标记组成:

2. Bean标记:用来在JSP页中管理bean

3. 逻辑标记:用来在JSP页中控制流程

4. HTML标记:用来生成HTML标记,在表单中显示数据,使用会话ID对URL进行编程

5. 模板标记:使用动态模板构造普通格式的页

2.1 Bean标记

这个标记库中包含用于定义新bean、访问bean及其属性的标记。Struts框架提供了多种自定义标记用来在JSP页中处理JavaBean。这些标记被封装在一个普通的标记库中,在文件struts-bean.tld中定义了它的标记库描述器。Bean标记库将标记定义在四个子类别中:

创建和复制bean的标记

脚本变量定义标记

bean翻译标记

消息国际化标记

2.1.1 Bean复制标记

可定义新bean,可复制现有bean,还可从现有bean复制属性。

标记用来:

定义新字符串常数

将现有的bean复制到新定义的bean对象

复制现有bean的属性来创建新的bean

标记属性:

属性描述Id 新定义的bean脚本变量名称,必须设置Type 定义引入脚本变量的类value 为id属性定义的脚本变量分配一个新的对象Name 目标bean的名称。若value属性没有设置,这个属性就必须设置property Name属性定义的bean的属性名称,用来定义新的bean

13

Scope 源bean的作用域。若没有设置,搜索范围是从页作用域到应用程序作用域toScope 目标bean的作用域。若没有设置,默认值是页作用域

例如:定义一个bean:

源bean在页作用域中被拷贝大哦请求作用域中的另一个bean:

2.1.2 定义脚本变量的标记

从多种资源中定义和生成脚本变量,这些资源包括cookie,请求参数,HTTP标头等等。属性如下:

属性描述Id 脚本变量和要定义的页作用域属性的名称Name cookie/标头/参数的名称multiple 如果这个属性设置了任意一个数值,所有匹配的cookie都会被积累并存储到一个Cookie[](一个数组)类型的bean里。若无设置,指定cookie的第一个值将作为Cookie类型的值value 如果没有匹配的cookie或数值,就返回这个属性指定的默认值

例如:

脚本变量名称是myCookie,用来创建这个属性的cookie的名称是userName。

脚本变量名称是myHeader,请求标头的名称是Accept-Language.

脚本变量名称是myPatameter,它保存的请求参数的名称也是myParameter.

标记将对一个资源的响应进行检索,并引入一个脚本变量和字符串类型的页作用域属性。这个资源可以是一个页,一个ActionForward或一个外部URL。与的不同是资源的响应被存储到一个页作用域的bean中,而不是写入到输出流。属性如下:

属性描述Id 脚本变量和要定义的页作用域属性的名称Page 一个内部资源forward 一个ActionForward Href 要包含的资源的完整URL

例如:

脚本变量的名称是myInclude,要检索的响应来自资源MyJsp?x=1。

标记将检索web应用中的资源,并引入一个脚本变量和InputStream或字符串类型的页作用域属性。如果在检索资源时发生问题,就会产生一个请求时间异常。属性如下:

属性描述

14

Id 脚本变量和要定义的页作用域属性的名称Name 资源的相对路径Input 如果这个属性不存在,资源的类型就是字符串

例如:

脚本变量的名称是myResource,要检索的资源的名称是myResource.xml。

2.1.3 显示Bean属性

标记库中定义了标记,用来将bean的属性输送到封装的JSP页写入器。这个标记与类似,属性如下:

属性描述Name 要进行属性显示的bean的名称property 要显示的属性的名称。如果这个属性类有java.beans.PropertyEditor,getAsText()或toString 方法会被调用Scope Bean的作用域,若没有设置,搜索范围是从页到应用程序作用域Filter 如果设置true,属性中的所有特殊HTML字符都将被转化为相应的实体引用Ignore 如果设置false,当发现属性时会产生一个请求时间异常,否则返回null

例如:

myBean的属性myProperty将会被显示,作用域为请求,如果发现任何HTML特殊字符都将被转化为相应的实体引用。

2.1.4 消息标记和国际化

strtus框架支持国际化和本地化。用户在他们的计算机中定义自己所在的区域,当web应用程序需要输出一条消息时,它将引用一个资源文件,在这个文件中所有的消息都使用了适当的语言。一个应用程序可能提供了很多资源文件,每个文件提供了用不同语言编写的消息。如果没有找到所选语言的资源文件,就将使用默认的资源文件。

struts框架对国际化的支持是使用标记,以及使用java.util数据包中定义的Locale和ResourceBundle类来实现Java2平台对这些任务的支持。Java.text.MessageFormat类定义的技术可以支持消息的格式。利用此功能,开发人员不需了解这些类的细节就可进行国际化和设置消息的格式。

用strtus实现国际化和本地化:

第一步要定义资源文件的名称,这个文件会包含用默认语言编写的在程序中会出现的所有消息。这些消息以“关键字-值”的形式存储,如下:

error.validation.location = The entered location is invalid

这个文件需要存储在类的路径下,而且它的路径要作为初始化参数传送给ActionServlet作为参数进行传递时,路径

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部