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,如果存在,就直接将它返回,否则先创建它的实例,把它保存在rquest或session范围内,再将它返回.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的前缀 |