struts1 核心类

时间:2022-06-26 16:31:24

http://ajh-123.blog.163.com/blog/static/161727409201031455634475/

1.ActionServlet类:

是一个前端控制器,将request转发给RequestProcessor来处理。提供了一组能够被Action对象使用的方法:

(1) 动态的添加和删除,只影响应用程序当前的实例

public void addFormBean(ActionFormBean formBean)

public void removeFormBean(ActionFormBean formBean)

public void addForward(ActionForward actionForward)

public void removeForward(ActionForward actionForward)

public void addMapping(ActionMaping actionMapping)

public void removeMapping(ActionMaping actionMapping)

(2) 根据名称查找对象

public ActionFormBean findFormBean(String name)

public ActionForward findForward(String name)

public ActionMapping findMapping(String name)

(3) 用来处理数据源

public void addDataSource(String key, DataSource ds)

public DataSource findDataSource(String key)

(4) 使用destroy()方法结束ActionServlet

(5) 使用reload()方法从struts配置文件将信息重新加载。

2.ActionMapping类:

ActionMapping类是ActionConfig的子类,实质上是对struts-config.xml的一个映射类,从中可以取得所有的配置信息。将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServlet将ActionMapping传送到 Action类的perform()方法,Action将使用ActionMapping的findForward()方法,此方法返回一个指定名称的 ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null。 ActionMapping类的方法:

(1) 可以在映射中动态添加ActionForward

public ActionForward findForward(String name)

(2) 可以返回与映射关联的表单bean

public void addForward(ActionForward forward)

(3) 可以返回映射的属性域(回话或请求)

public String getName()

(4) 可以返回映射的作用域

public String getScope()

3.RequestProcessor类

根据提交过来的url,如*.do从ActionMapping中得到相应的ActionForm和Action,然后将request参数对应到 ActionForm中,进行验证(ActionForm不光要对传入的paramter进行存储,也要校验?)。如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionForward。

4.ActionForward类:

是对mapping中一个forward的包装,对应于一个url。

5.Action类:是框架包的核心,链接客户请求和业务操作,真正实现应用程序的事务逻辑,负责处理请求。其方法有:

(1) 所有Action类都扩展org.apache.struts.action.Action类,且覆盖类中定义的一个execute()方法(重载有多个)。

处理非HTTP请求:

public ActionForward execute(ActionMapping action, ActionForm form,ServletRequest request, ServletResponse response) thorws IOException, ServletException

处理HTTP请求:

public ActionForward execute(ActionMapping action, ActionForm form, HttpServletRequest request, HttpServletResponse response) thorws IOException, ServletException

(2) 可以获得或设置与请求相关联的区域:

public Local getLocal(HttpServletRequest request)

public void setLocal(HttpServletRequest request, Local local)

(3) 为应用程序获得消息资源:

public MessageResources getResources()

(4) 检查用户是否点击表单上的“取消”键,如果是,返回true:

public Boolean isCancelled(HttpServletRequest request)

(5) 当应用程序发生错误时,Action类存储错误信息:

public void saveErrors(HttpServletRequest request, ActionErrors errors)

6.DispatchAction类:

Struts提供了多种Action供选择使用。普通的Action 只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种 任务。如insert,update等。LookupDispatchAction可以根据提交表单按钮的名称来执行函数。