现在的位置: 首页 > 综合 > 正文

转 Struts框架

2013年10月06日 ⁄ 综合 ⁄ 共 3865字 ⁄ 字号 评论关闭

 

目录

 

…………………………………………………………………………………………………1

目录

…………………………………………………………………………………………………2

Struts框架

1.    struts压缩包内容………………………………………………………………………3

2.    struts体系结构(模型-视窗-控制器)…………………………………………………3

3.    struts框架的组件………………………………………………………………………4

3.1  struts配置文件……………………………………………………………………5

3.2  ActionServlet类……………………………………………………………………7

3.3  ActionMapping类……………………………………………………………………9

3.4  Action类……………………………………………………………………………9

3.5  ActionForm类………………………………………………………………………10

3.6  ActionForward类……………………………………………………………………11

3.7  错误处理………………………………………………………………………………11

 

Struts标记库

4.    struts标记库………………………………………………………………………………13

4.1 Bean标记………………………………………………………………………………13

4.1.1    Bean复制标记…………………………………………………………………13

4.1.2    定义脚本变量标记……………………………………………………………13

4.1.3    显示bean属性…………………………………………………………………14

4.1.4    消息国际化标记………………………………………………………………15

4.2 逻辑标记………………………………………………………………………………16

   4.2.1 条件标记………………………………………………………………………16

   4.2.2 重复标记………………………………………………………………………18

   4.2.3 转发和重定向标记……………………………………………………………18

4.3 HTML标记………………………………………………………………………………19

4.3.1 显示表单元素和输入控件……………………………………………………19

4.3.2 显示错误信息的标记…………………………………………………………23

4.3.3 其他HTML标记…………………………………………………………………24

    4.4 模板标记………………………………………………………………………………24

 

 

 

 

 

Struts框架

struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。

本章详细讨论struts架构。我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。我们还将介绍struts提供的类如何使得开发工作更加简单,这些类包括:

l         控制程序流程的类

l         实现和执行程序事务逻辑的类

l         自定义的标记库使得创建和验证HTML表单更加容易

1. Struts压缩包内容

文件夹jakarta-struts-1.0.2包含两个目录,lib和webapps。在lib目录中有使用struts创建应用程序是所需的文件:

文件

描述

jdbc2_0-stdext.jar

包含JDBC2.0 Optional Package API类。如果我们要使用struts提供的数据资源,就需要将这个文件拷贝到WEB-INF/lib下

Struts.jar

包含struts中所有的java类。同样也需要拷贝到WEB-INF/lib下

*.tld

标记库描述器文件,描述了多个struts标记库中的自定义标记。同样要拷贝到WEB-INF/lib下

webapps目录下有如下文件:

Web应用程序

描述

Struts-blank.war

一个简单的web应用程序

Struts-documentation.war

包含struts站点上所有struts文档

Struts-example.war

Struts很多特性的示范

Struts-exercisetaglib.war

主要用于对自定义标签库进行增加而使用的测试页,但也可以示范如何使用struts标记

Struts-template.war

包含struts模板标记的介绍和范例

Struts-upload.war

一个简单的例子,示范如何使用struts框架上传文件

2.Struts体系结构

让我们从MVC角度观察struts框架中的组件

 

框架中三个部分:模型,视窗和控制器。

模型

struts框架中,模型分为两个部分:

l         系统的内部状态

l         可以改变状态的操作(事务逻辑)

  内部状态通常由一组ActinForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。

  大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。

  小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。

  建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。

视窗

  由JSP建立,struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。

控制器

  struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。

3.Struts框架中的组件

 

(由于ROSE工具还未能下载,只能找来这幅图,它说明了一定问题,特别是ActionErrors,但它并没有将ActionMapping,JSP和Tag Library包含进来,有时间作完替换)

框架中所使用的组件:

ActionServlet

控制器

ActionClass

包含事务逻辑

ActionForm

显示模块数据

ActionMapping

帮助控制器将请求映射到操作

ActionForward

用来指示操作转移的对象

ActionError

用来存储和回收错误

Struts标记库

可以减轻开发显示层次的工作

下面我们看看各自在框架中所扮演的角色和责任。

3.1 Struts配置文件

这是将struts组件结合在一起的东东:struts-config.xml。默认值

/WEB-INF/struts-config.xml。配置文件可以定义:

l         全局转发

l         ActionMapping类

l         ActionForm bean

l         JDBC数据源

配置全局转发

全局转发用来在JSP页之间创建逻辑名称映射。转发都可以通过对调用操作映射的实例来获得,例如:

actionMappingInstace.findForward(“logicalName”);

全局转发的例子:(所有的例子我没有进行解释,一是结合表可以理解,二是例子大部分来自系列四的示例,你应该在作完实验后,再来看一便)

<global-forwards>

<forward   name="bookCreated"  path="/BookView.jsp"/>

</global-forwards>

 属性

描述

Name

全局转发的名字

Path

与目标URL的相对路径

 

配置ActionMapping

ActionMapping对象帮助进行框架内部的流程控制,它们可将请求URI映射到Action类,并且将Action类与ActionForm bean相关联。ActionServlet在内部使用这些映射,并将控制转移到特定Action类的实例。所有Action类使用perform()方法实现特定应用程序代码,返回一个ActionForward对象,其中包括响应转发的目标资源名称。例如:

<action-mappings>

<action  path="/createBook"

             type="BookAction"

             name="bookForm"

             scope="request"

             input="/CreateBook.jsp">

</action>

<forward name=”failure” path=”/CreateBook.jsp”/>

<forward name=”cancel” path=”/index.jsp”/>

</action-mappings>

属性

描述

Path

Action类的相对路径

Name

与本操作关联的Action bean的名称

Type

连接到本映射的Action类的全称(可有包名)

Scope

ActionForm bean的作用域(请求或会话)

Prefix

用来匹配请求参数与bean属性的前缀

Suffix

用来匹配请求参数与bean属性的后缀

attribute

作用域名称。

抱歉!评论已关闭.