初学Struts
学习struts好久了,可是还是感觉自己糊里糊涂的,尤其是ActionServlet,Action,ActionForm之间的关系很难搞清楚,还有就是到底Struts是如何运行的,也是很迷茫。
总结了一些经验提供给大家,我是初学者难免有不对的地方。希望大家予以指正。
Struts框架中提供一个单独的Action Servlet,它实际充当控制器角色,负责处理浏览器请求,但不进行任何具体操,具体操作是在action的子类中完成的。
一、应用Struts框架的系统,在WEB应用配置文件web.xml中须将具有某种url-pattern都映射到Action Servlet。如
Web.Xml
-------
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
---------
以上代码,你可以修改*.do为其他的后缀,比如*.aspx ,相应的你要修改你的表单action,如
<form method="post" action="welcomeAction.do ">修改为<form method="post" action="welcomeAction.aspx ">
二、在web.xml已经映射了action (<servlet-name>action</servlet-name>),action是Struts框架自身的类。它通过struts-config.xml来设定每个不同的action子类映射。
浏览器请求在struts-config.xml文件中映射到一个这样的子类,Action Servlet在运行时加载该配置,将请求分配给相应的Action 子类去处理。如:
struts-config.xml
……..
<action-mappings>
<action name="welcomeActionForm" path="/welcomeAction" scope="request" type="strutstest.WelcomeAction" validate="false">
<forward name="welcome" path="/welcome.jsp" />
</action>
…….
以上代码可以看到 path中路径("/welcomeAction")映射到类type(“strutstest.WelcomeAction”)
三、ActionForm Bean 浏览器带参数时候,用户提交HTML表单后,Struts框架把参数放在一个org.apache.struts.action.ActionFormBean中。ActionForm Bean的作用可以是从数据库中把一些值取出来填入到表单中,或者对表单中值进行验证。
四、标签库,标签库是用来支持ActionForm Bean的,它可以把ActionForm Bean中数据推入视图(JSP)。可以提供由用户来决定字符显示(国际化)。
五、ActionForward你就可以理解为Action 操作完成后的跳转URL,Action在处理完相关操作后,返回的是一个ActionForward也就是告诉Struts我做完这个操作下一步到哪儿去。如:<forward name="welcome" path="/welcome.jsp" />
name : 石太祥
QQ : 9690501
msn : ealpha(AT)msn.com