struts入门有点迷惑,关于调用流程
这是web.xml的配置:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>l</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
递交表单后为什么要调用类org.apache.struts.action.ActionServlet
而不是自己定义的LookupAction(extends Action)
流程是怎么从org.apache.struts.action.ActionServlet转到我的LookupAction上的?
这是struts-config.xml
<form-beans>
<form-bean name="lookupForm"
type="example.LookupForm"/>
</form-beans>
<action-mappings>
<action path="/Lookup"
type="example.LookupAction"
name="lookupForm" >
<forward name="success" path="/quote.jsp"/>
<forward name="failure" path="/index.jsp"/>
</action>
</action-mappings>
问题点数:20、回复次数:11Top
1 楼zhh1981(**的猪头)回复于 2006-03-13 10:38:38 得分 2
看一下ActionServlet的源代码就清楚了Top
2 楼zeq258(周二强)回复于 2006-03-13 11:10:27 得分 2
才开始,你会做就可以了,
漫漫的,你做的多了,你自己就会知道它的流程了!
最好看源码!Top
3 楼Paripatetic(逍遥)回复于 2006-03-13 11:19:13 得分 0
刚才看了几眼
太复杂了
还有处理xml的api
也许我太在乎细节了,应该把它看作一个黑盒吧Top
4 楼zhh1981(**的猪头)回复于 2006-03-13 11:21:49 得分 0
也许我太在乎细节了,应该把它看作一个黑盒吧
----------------------------------------------
是的!Top
5 楼syl5005(syl5005)回复于 2006-03-13 12:18:58 得分 2
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
Top
6 楼Paripatetic(逍遥)回复于 2006-03-13 12:32:56 得分 0
楼上什么意思?Top
7 楼xiaopeipei2004(小裴)回复于 2006-03-14 09:35:48 得分 2
upTop
8 楼netstu(孤心)回复于 2006-03-14 09:43:46 得分 2
我觉得程序员真的不能把那些当黑盒,要不会学傻的。Top
9 楼Paripatetic(逍遥)回复于 2006-03-14 11:00:57 得分 0
可是每个组件都想透彻了解的话
要知道的东西太多了吧Top
10 楼liumyboy()回复于 2006-03-15 00:12:33 得分 5
递交表单后为什么要调用类org.apache.struts.action.ActionServlet
而不是自己定义的LookupAction(extends Action)
流程是怎么从org.apache.struts.action.ActionServlet转到我的LookupAction上的?
这个要看一下琴姐的struts得书了,struts是一个基于mvc的框架,ActionServlet是struts的control的部分了,由他来控制整个struts的流程,如果看代码的话,就会明白,是由他来实例化formAction类,然后formAction类进行校验,如果不出错,才会掉到Action类的。Top
11 楼nineday()回复于 2006-03-15 13:22:00 得分 5
递交表单后为什么要调用类org.apache.struts.action.ActionServlet
而不是自己定义的LookupAction(extends Action)
流程是怎么从org.apache.struts.action.ActionServlet转到我的LookupAction上的?
1。struts问世的目的是为了方便大家开发MVC的项目,所以数据的流向问题都帮我们解决好了,封装在org.apache.struts.action.ActionServlet里面,你只要用就可以了,要想知道里面的内幕是什么,那就得看ActionServlet的源码或看琴姐的book了。
2。流程是怎么从org.apache.struts.action.ActionServlet转到我的LookupAction上的?
在struts-config.xml中
<action path="/Lookup"
type="example.LookupAction"
name="lookupForm" >,定义了uri——path="/Lookup"。
当提交的请求是Lookup.*(你的是Lookup.do),ActionServlet的process()方法会自动调用RequestProcessor对象的process()方法,RequestProcessor对象的process()方法根据struts-config.xml中的uri——path="/Lookup",找到了<action>子元素type="example.LookupAction"
.Top




