Struts学习笔记之Action
摘要: 下面是Struts中的一些常用Action如DispatchAction/LookupDispatchAction/MappingDispatchAction/ForwardAction/IncludeAction的总结
1.DispatchAction extends BaseAction
一般的Action如
,在这里UserAction只需要继承父类(extends Action类),然后重写父类的execute方法,在execute中实现具体的控制转向。
对于同一个formbean上进行的新增、修改、删除等,我们需要分发不同的Action,这里有两种做法。
阅读全文
Struts学习笔记之ActionForm
摘要: ActionForm中比较常用的两个方法是reset()和validator():
// 恢复ActionForm属性的默认值,如把boolean型设为true/false,字符串设为null。
public void reset( ActionMapping mapping, HttpServletRequest request ) { }
// validate只检查数据格式和语法,不检查数据是否符合业务逻辑。
public ActionErrors validate( ActionMapping mapping, HttpServletRequest request ) { return (null); }
这两个方法的默认实现是不执行任何操作,我们可以重写这两个方法来实现相关逻辑。
注:对于每个request,控制器都会先调用ActionForm的reset()方法,然后表单数据组装到ActionForm中。如ActionForm在request范围内,那么对于每个新的request请求都会创建新的ActionForm实
阅读全文
Struts源码学习之ActionServlet(二)
摘要: ④ 调用initChain(); 读取web.xml中命令链文件初始值chainConfig
protected String chainConfig = "org/apache/struts/chain/chain-config.xml";
//④initChain();
// 如没有chainConfig参数,则使用默认"org/apache/struts/chain/chain-config.xml"
String value;
value = getServletConfig().getInitParameter("chainConfig");
if (value != null) {
chainConfig = value;
}
阅读全文
Struts源码学习之ActionServlet(一)
摘要: Struts源码最新版本为struts-1.3.8-src.zip (12-Mar-2007 00:06)
学习笔记使用struts-1.3.5-src.zip 的源码,
下载地址:http://archive.apache.org/dist/struts/source/
2. 下面研究一下struts的源码,由于servlet设置了load-on-startup,所以tomcat启动时会加载ActionServlet,也就是会执行ActionServlet中的init()方法,Struts 的初始化实现就是在这里实现的。
注:由于servlet的生命周期为 web容器加载和实例化类/init()初始化/service()请求处理/destroy()四个阶段,而init()方法在tomcat启动后只执行一次,所以如果想在tomcat启动后用debug模式查看ActionServlet中init()方法的执行,可以把上面的
2注释掉就可以了(不过真正开发时还是需要的)。
阅读全文
Struts学习笔记之MVC模式
摘要: View:由JSP、Struts自定义标记库、资源文件(MessageResources.properties)共同组成,通过ActionForm实现JSP表单的封装,并映射到Model部分中JavaBean的相应属性中,完成用户数据的封装。
注意:关于ActionForm,有些人认为它属于Model层(仁者见仁,智者见智)。
事实上它不是Model,真正的Model应该是一个封装了业务逻辑的的对象。
而ActionForm仅仅是一个form-bean,封装了用户提交的表单数据(物理View),可以在其中进行一些非业务逻辑的验证,并没有真正的映射到模型数据,因为与层的关系比较密切,所以实际上它应该算是View层(逻辑View)。
阅读全文