Struts源码分析笔记--备注

Struts源码分析笔记--备注

(1)RequestUtils类

在查RequestUtils类所导入的包中,可以看到它导入了

import org.apache.struts.Globals;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessages;

import org.apache.struts.action.ActionServlet;

import org.apache.struts.action.ActionServletWrapper;

import org.apache.struts.action.DynaActionForm;

import org.apache.struts.action.DynaActionFormClass;

import org.apache.struts.config.ActionConfig;

import org.apache.struts.config.FormBeanConfig;

import org.apache.struts.config.ForwardConfig;

import org.apache.struts.config.ModuleConfig;

import org.apache.struts.taglib.TagUtils;

import org.apache.struts.upload.MultipartRequestHandler;

import org.apache.struts.upload.MultipartRequestWrapper;

   它为Struts控制器框架,提供了一些处理请求的通用方法,所有的方法都是线程安全的,并被声明为static类型.因此,不必创建RequestUtils类的实例.可以直接通过类名来访问这些方法.

                                                            RequestUtils类的常用方法

方法

描述

absoluteURL(HttpServletRequest request, String path)

根据请求中指定的服务器和参数path指定的对于上下文的相对路径,创建并返回URL绝对路径.

applicationClass(String className)

web应用所有被装载的类中,返回被指定的完全修饰的类名;指定的类必须有空的公有构造对象.

applicationInstance(String className)

web应用所有被装载的类中,返回指定的完全修饰的类名的一个新事例; 指定的类必须有空的公有构造对象.

createActionForm(

            HttpServletRequest request,

            ActionMapping mapping,

            ModuleConfig moduleConfig,

            ActionServlet servlet)

创造(如果需要) 并且返回一个适当的ActionForm事例,

如果ActionForm 事例是不必需,则返回null;

注明:这里和<<精通Struts>>中的描述:

先从request session范围内查找该ActionForm,如果存在,就直接将它返回,否则先创建它的实例,把它保存在rquestsession范围内,再将它返回.mapping参数包含了<action>元素的配置信息,例如它的acope属性指定的ActionForm的范围.

Struts 1.2修改或新加

selectModule(

            String prefix,

            HttpServletRequest request,

            ServletContext context)

选择指定的请求属于的模块, 并且增加这个请求中对应的请求属性。

selectModule(HttpServletRequest request, ServletContext context)

选择指定的请求属于的模块, 并且增加这个请求中对应的请求属性。


(2)                                                            Globals 类中定义的常量

方法

                                                 描述

ACTION_SERVLET_KEY

代表在application 范围内存放ActionServlet实例的属性key

DATA_SOURCE_KEY

代表在application范围内存放DataSource实例的属性key

ERROR_KEY

代表在request范围内存放ActionError实例的属性key

LOCALE_KEY

代表在session 范围内存入Locale 实例的属性key

MAPPING_KEY

代表在request范围内存放ActionMappings 实例的属性key

MESSAGE_KEY

代表在request 范围内存放ActionMessages 实例的属性key

MESSAGES_KEY

代表在application 范围内存放各个子应用模块ActionMessages 实例的属性key的前缀

MODULE_KEY

代表在application范围内存放各个子应用模块 ModuleConfig 实例的属性key的前缀

REQUEST_PROCESSOR_KEY

代表在application范围内存放各个子应用模块的RequestProcessor实例的属性key的前缀

 

posted @ 2006-04-13 15:25  zhanlh  阅读(1163)  评论(0编辑  收藏  举报