`
缠小溪
  • 浏览: 24253 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

struts入门

 
阅读更多

一、struts简介

struts是开源的java web框架,他很好的实现了MVC模式,通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面上联系较少,耦合度较低,这就大大提高了应用程序的可维护性和扩展性。

1、

struts框架中的核心包
包名 说明
action 包含控制器类ActionForm及ActionMessage,以及其他几个必要的框架组件
actions 包含立即可用out-of-box的Action类,诸如DispatchAction,允许你的应用程序使用或扩展
config 包含配置configuration类,可用来在内存中存储struts配置文件的内容
taglib 包含标记处理类tag handler类,处理的对象是struts标记库
tiles 包含tiles框架所使用的类
upload 所包含的允许浏览器从本地文件系统上载或下载文件
util 包含整个框架都用到的通用工具类
validator 包含struts特有的扩展类,可供struts部署验证器validator时使用,实际的validator类和接口独立于struts之外,被放在commons包中

二、struts的基本原理

struts应用程序启动时,它首先从struts-config.xml中读取相关信息。根据这些信息,它的控制器ActionServlet知道把视图中的请求转发给哪个业务逻辑组件处理。视图组件、控制器与业务逻辑组件之间没有代码上的联系,他们之间的关系在struts-config.xml中声明,这样大大提高了web应用程序的可移植性和可维护性。

三、struts的核心组件

struts的控制器组件

1、struts的ActionServlet类

ActionServlet类扩展了javax.servlet.http.HttpServlet类,其职责是把HTTP消息打包起来并路由传送到框架中合适的处理器。ActionServlet类并非抽象类,因此应用程序可把他作为具体的控制器来使用。它必须在web应用程序所使用的部署描述文件中配置。

2、Action类

struts框架中的org.apache.struts.action.Action类是控制器组件的一个扩展。他可以把客户端用户的动作与一个业务操作连接起来。Action类可以使客户请求和业务模型松散耦合,这种松散耦合让用户请求和action类之间不再只限于一对一的对应关系。Action类在调用业务操作之前,也可以完成其他功能,诸如认证、日志记录和会话验证。

Action类中的重要的execute()方法

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response response)throws Exception;

3、struts配置文件struts-config.xml

struts应用的各个组件及其关系均在该文件中声明。

4、ActionMapping

当控制器收到一个请求时,它通过查看请求信息并使用一举动作映射对象(ActionMapping)来做出决定。动作映射(ActionMapping)是struts架构中一个特有对象,他封装了配置文件struts-config.xml中的action mapping元素所包含的配置信息。这个配置文件会在启动时加载到内存,让struts能够在运行时加以利用。

5、ActionForward类

ActionForward类所表示的是一个目标,也就是在Action完成后,控制器呀转交控制权的地方。以声明的方式把某个动作的转发映射与JSP页面相关联,然后再整个应用程序中使用哪个ActionForward对象。实际上,ActionForward对象封装在了配置文件struts-config.xml中forward元素所包含的信息。


struts的视图组件

struts应用程序的常见视图组件如下:

  • JSP页面
  • ActionForm
  • Struts标记
  • Java资源包

1、ActionForm类

ActionForm对象用来在用户和业务层之间传输客户的输入数据。ActionForm也叫FormBean.Struts会自动从请求中输入数据,在将这些数据交给一个使用formbean的action对象,接着FormBean可以再交给业务层。

ActionForm类最重要的两个方法reset()和validate(),这两个方法默认实现不完成任何默认的逻辑。必须在自己的ActionForm类中覆盖着两个方法。

控制器把请求中的表单数据填入ActionForm实例之前,会先调用reset()方法。reset()会将ActionForm性质重新设置回原来的默认状态。当请求数据插入ActionForm实例后,控制器会调用validate()方法,ActionForm应该对输入数据完成相应的必要验证工作,然后向控制器返回所检测到的任何错误。

2、struts标记库

struts框架定义的标记库有HTML标记库,Bean标记库,Logic标记库、Nested标记库、Template标记库、以及tiles标记库

要在应用程序中使用这些标记库,必须在web.xml文件中向web应用程序注册这些标记库。

3、使用消息资源包

对于你想支持的每种语言必须提供一个相应的资源包。类名或者属性文件名都必须遵循javadocs对java.util.ResourceBundle类所列的原则来命名。

struts的模型组件

struts框架在模型组件上没有太多支持,struts的模型组件可用javabeans或EJB



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics