您的位置:首页 > 编程语言 > Java开发

struts各大框架组件详解

2012-11-12 21:25 459 查看

(1)ActionServlet

ActionServlet配置

我们需要在web.xml中声明ActionServlet,并且将它配置成启动时进行加载。

ActionServlet是Struts的Controller,基本功能:

A、截获用户的Http请求

B、把这个请求映射到相应的Action类,如果这是此类收到的第一个请求,将初始化实例并缓存

C、创建或发现一个ActionForm bean实例(看配置文件是否定义),然后将请求过程移植到bean.

D、调用Action实例的execute方法,并将ActioFormbean,Action Mapping对象,request和response对象传给它

E、execute方法会返回一个ActionForward对象,连接到相应的jsp页面

(2)ActionForm

介绍:

ActionForm是一个JavaBean,它捕获通过HTTP请求传送的参数

ActionForm针对每个HTML表单中的字段具有一个对应的属性

ActionServlet匹配请求中的参数和ActionForm中的属性,并调用ActionForm中的setter方法,将参数传入ActionForm

要求:

必须扩展自org.apache.struts.action.ActionForm

如果想要在组装前初始化属性,必须实现reset方法

特殊:动态ActionForm,DynaActionForm的配置

作用:

作为表单字段收集器

作为类型转换器,所有从表单提交到后台的数据均为字符串类型,自动转换类型

作为传输对象(vo,dto)

(3)Action

介绍:

Action是一个Java类,需继承org.apache.struts.action.Action类

ActionServlet将会组装ActionForm,并将它传递给Action

Action 主要职责:

a.校验输入数据

b.调用业务逻辑方法,执行业务逻辑操作

c.检测处理异常

d.根据逻辑进行转向操作

可重入性:

J2EE是一个多线程的环境,服务器针对每个请求启动一个线程来处理。所以有可能会有多个线程同时访问一个Servlet实例的情况

在Struts里面也是一样的,有可能会有多个线程同时访问一个Action实例的情况

所以必须保证Action类中的方法具有“可重入性”,即不能在Action的方法里改变实例变量的值

(4)ActionMapping

ActionMapping的属性

path

forward

type

name

scope

validate

input

parameter

unknown

scope属性:在Action映射配置中,Scope属性可以取值为:request或session

Scope属性表示:Struts框架在将ActionForm对象传送到Action之前,会将ActionForm对象保存的位置

(5)ActionForward

作用:Action操作成功了,然后呢?

ActionForward会回传给ActionServlet

ActionForward中的路径,可以是一个带参数的URI

ActionForward的属性

name

path

redirect

className

转发(forward)与重定向(redirect)

全局ActionForward与局部ActionForward

动态ActionForward

(6)Struts Taglib

易于使用,能代替直接在页面上写JAVA脚本

便于重用

<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>

<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>

<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>

常用的taglib:

<bean:write>

<logic:empty>和<logic:notEmpty>

<logic:present>和<logic:notPresent>

<logic:iterator>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: