﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-xiaodaoxiaodao——蓝小刀的自言自语-随笔分类-Struts</title><link>http://www.blogjava.net/xiaodaoxiaodao/category/26096.html</link><description>黑夜给了我寂寞的心情，我却用它来寻找爱情~~</description><language>zh-cn</language><lastBuildDate>Sun, 23 Sep 2007 04:24:31 GMT</lastBuildDate><pubDate>Sun, 23 Sep 2007 04:24:31 GMT</pubDate><ttl>60</ttl><item><title>Struts学习笔记之Action</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Sun, 10 Jun 2007 01:02:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/123141.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/123141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/123141.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 下面是Struts中的一些常用Action如DispatchAction/LookupDispatchAction/MappingDispatchAction/ForwardAction/IncludeAction的总结<br><br>1．DispatchAction extends BaseAction<br>一般的Action如<action path="/createUser" type="examples.UserAction">，在这里UserAction只需要继承父类（extends Action类），然后重写父类的execute方法，在execute中实现具体的控制转向。<br>对于同一个formbean上进行的新增、修改、删除等，我们需要分发不同的Action，这里有两种做法。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/123141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-06-10 09:02 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts学习笔记之ActionForm</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Thu, 31 May 2007 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/121264.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/121264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/121264.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ActionForm中比较常用的两个方法是reset()和validator()：<br>// 恢复ActionForm属性的默认值，如把boolean型设为true/false，字符串设为null。<br>public void reset( ActionMapping mapping, HttpServletRequest request ) { }<br>// validate只检查数据格式和语法，不检查数据是否符合业务逻辑。<br>public ActionErrors validate( ActionMapping mapping, HttpServletRequest request ) { return (null); }<br>这两个方法的默认实现是不执行任何操作，我们可以重写这两个方法来实现相关逻辑。<br><br>注：对于每个request，控制器都会先调用ActionForm的reset()方法，然后表单数据组装到ActionForm中。如ActionForm在request范围内，那么对于每个新的request请求都会创建新的ActionForm实&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/121264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-05-31 23:04 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts源码学习之ActionServlet(二)</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Thu, 26 Apr 2007 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/113744.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/113744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/113744.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ④ 调用initChain(); 读取web.xml中命令链文件初始值chainConfig<br>protected String chainConfig = "org/apache/struts/chain/chain-config.xml"; <br>//④initChain();<br><br>// 如没有chainConfig参数，则使用默认"org/apache/struts/chain/chain-config.xml"<br>String value;<br>value = getServletConfig().getInitParameter("chainConfig");<br>if (value != null) {<br>    chainConfig = value;<br>}&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/113744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-04-26 12:37 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts源码学习之ActionServlet(一)</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Thu, 26 Apr 2007 00:24:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/113666.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/113666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/113666.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Struts源码最新版本为struts-1.3.8-src.zip （12-Mar-2007 00:06）<br>学习笔记使用struts-1.3.5-src.zip 的源码，<br>下载地址：http://archive.apache.org/dist/struts/source/<br><br>2．	下面研究一下struts的源码，由于servlet设置了load-on-startup，所以tomcat启动时会加载ActionServlet，也就是会执行ActionServlet中的init()方法，Struts 的初始化实现就是在这里实现的。<br><br>注：由于servlet的生命周期为 web容器加载和实例化类/init()初始化/service()请求处理/destroy()四个阶段，而init()方法在tomcat启动后只执行一次，所以如果想在tomcat启动后用debug模式查看ActionServlet中init()方法的执行，可以把上面的<load-on-startup>2</load-on-startup>注释掉就可以了（不过真正开发时还是需要的）。&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/113666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-04-26 08:24 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts学习笔记之MVC模式</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Mon, 26 Mar 2007 13:05:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/106522.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/106522.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/106522.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: View：由JSP、Struts自定义标记库、资源文件（MessageResources.properties）共同组成，通过ActionForm实现JSP表单的封装，并映射到Model部分中JavaBean的相应属性中，完成用户数据的封装。<br><br>注意：关于ActionForm，有些人认为它属于Model层（仁者见仁，智者见智）。<br>事实上它不是Model，真正的Model应该是一个封装了业务逻辑的的对象。<br>而ActionForm仅仅是一个form-bean，封装了用户提交的表单数据（物理View），可以在其中进行一些非业务逻辑的验证，并没有真正的映射到模型数据，因为与层的关系比较密切，所以实际上它应该算是View层（逻辑View）。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/106522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-03-26 21:05 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>