Struts的MVC和简单流程
2005-01-20 22:36
204 查看
今天起的很晚,下午又停了一会电,真是◎#¥%……※×
![](http://blog.csdn.net/Emoticons/hitwall.gif)
,只好看看书了。总结了一下对Struts关于MVC的一些理解。把Struts标签和Form提交处理流程整理了一下。
Struts实现了Controler部分,就是那个ActionServlet类,一般使用Struts都把所有的.do的请求交给这个类处理,这个类根据struts-config.xml这个配置文件来处理请求由那个Action对象来处理。要让Struts的ActionServlet类正常工作要在Web.xml中声明,初始化Struts-config.xml
映射.do的请求
视图是一堆Jsp文件,可以使用Struts提供的标签库。
模型,要继承ActionForm,和网页中的Form对应,简单的模型就是set/get和验证validate。然后交给Action处理。不知道Action到底属于那个部分,好像都不算。这块还是不太明白。发布LoginAction需要struts-config.xml配置一下:一个示例
Tomcat装载流程。
使用了标签的表单:
从application.properties文件中读取文本,替换相应的标签代码
有<html:form>的标签则在session范围中查找对应的Form Bean,如果存在这样的实例,就吧From Bean中的属性映射到Form表单的输入文本框中。没有则忽略。
提交表单:
Servlet/Jsp容器在web.xml文件中找到*.do的servlet-mapping:action。
根据servlet-name在servlet元素中找到对应的ActionServlet类
根据struts-config.xml中的设置,ActionServlet创建对应的Form对象,把客户提交的表单数据传给Form对象,这个对象保存在session范围内
如果该Form有validate方法则调用
如果验证失败(这里是指格式长度等不合要求)validate方法返回一个ActionErrors对象,包含一个ActionError对象
ActionServlet从struts-config.xml中查找path属性符合的<action>元素,根据其中的input属性,返回该表单,如果该表单使用了<html:error>标签,则从application.properties中读出相应的错误信息。(参考上面的Action元素示例)
验证成功,validate方法返回的ActionError对象不包含任何ActionError对象。
ActionServlet从struts-config.xml中查找path属性符合的<action>元素,查找<action>中type属性中的Action实例,没有则创建一个,包含以上<action>元素配置信息的ActionMapping对象,然后调用LoginAction的execute方法。
execute中执行操作,再根据结果查找<action>中相应的<forward>子元素,获得ActionForward对象,返回给ActionServlet。这一步要通过自己来编码实现。
ActionServlet把客户请求转发到ActionForward对象指的页面中。
![](http://blog.csdn.net/Emoticons/hitwall.gif)
,只好看看书了。总结了一下对Struts关于MVC的一些理解。把Struts标签和Form提交处理流程整理了一下。
Struts实现了Controler部分,就是那个ActionServlet类,一般使用Struts都把所有的.do的请求交给这个类处理,这个类根据struts-config.xml这个配置文件来处理请求由那个Action对象来处理。要让Struts的ActionServlet类正常工作要在Web.xml中声明,初始化Struts-config.xml
映射.do的请求
<servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <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> …… </servlet>
视图是一堆Jsp文件,可以使用Struts提供的标签库。
模型,要继承ActionForm,和网页中的Form对应,简单的模型就是set/get和验证validate。然后交给Action处理。不知道Action到底属于那个部分,好像都不算。这块还是不太明白。发布LoginAction需要struts-config.xml配置一下:一个示例
<action path="/login" type="mypack.LoginAction" name="loginForm" scope="session" input="/login.jsp" validate="true"> <forward name="success" path="/hello.jsp" /> <forward name="failure" path="/loginerror.jsp" /> </action>
Tomcat装载流程。
使用了标签的表单:
从application.properties文件中读取文本,替换相应的标签代码
有<html:form>的标签则在session范围中查找对应的Form Bean,如果存在这样的实例,就吧From Bean中的属性映射到Form表单的输入文本框中。没有则忽略。
提交表单:
Servlet/Jsp容器在web.xml文件中找到*.do的servlet-mapping:action。
根据servlet-name在servlet元素中找到对应的ActionServlet类
根据struts-config.xml中的设置,ActionServlet创建对应的Form对象,把客户提交的表单数据传给Form对象,这个对象保存在session范围内
如果该Form有validate方法则调用
如果验证失败(这里是指格式长度等不合要求)validate方法返回一个ActionErrors对象,包含一个ActionError对象
ActionServlet从struts-config.xml中查找path属性符合的<action>元素,根据其中的input属性,返回该表单,如果该表单使用了<html:error>标签,则从application.properties中读出相应的错误信息。(参考上面的Action元素示例)
验证成功,validate方法返回的ActionError对象不包含任何ActionError对象。
ActionServlet从struts-config.xml中查找path属性符合的<action>元素,查找<action>中type属性中的Action实例,没有则创建一个,包含以上<action>元素配置信息的ActionMapping对象,然后调用LoginAction的execute方法。
execute中执行操作,再根据结果查找<action>中相应的<forward>子元素,获得ActionForward对象,返回给ActionServlet。这一步要通过自己来编码实现。
ActionServlet把客户请求转发到ActionForward对象指的页面中。
相关文章推荐
- Struts对MVC的实现流程
- 简单struts 1应用执行流程
- 目前项目中用到的Java Web框架的MVC流程(简单示例)
- 35-002-1 struts前期之 通过JAVA反射机制及XML配置文件解析自定义一个MVC的简单框架
- Struts 简单流程
- 创建Struts 2简单应用的流程
- 简单web图书项目流程之理解MVC思想
- 通过简单示例来了解Struts流程
- MVC学习一:MVC简单流程
- MVC框架之—Struts原理简介与简单开发流程部署
- Struts2学习日志(3)编写Struts简单流程
- MVC框架之—Struts原理简介与简单开发流程部署
- SSH框架之Struts的有关执行流程的面试题、配置上的共性问题、简单应用-用户登陆
- 一个简单的例子说明Struts的工作流程
- 深入理解Struts,实现一个简单的MVC
- 结合一个简单的项目分析MVC设计流程
- Struts 2 第11part 简单数据验证
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式
- mvc应用到cocos2d的简单理解
- asp.net mvc 流程初探