Spring3 MVC - 3到Spring MVC框架简介Spring3 MVC框架简介Spring MVC是Spring的框架的Web组件。
它提供了丰富的功能,为建设强大的Web应用程序。
Spring MVC框架的架构,并在这样的高度可配置的方式,每一块的逻辑和功能设计。
此外Spring可以毫不费力地与其他流行的Web框架,如Struts,WebWork的,的Java Server Faces和Tapestry集成。
这意味着,你甚至可以告诉Spring使用Web框架中的任何一个。
比Spring更不紧耦合的servlet或JSP 向客户端呈现视图。
喜欢速度与其他视图技术集成,Freemarker的,Excel或PDF现在也有可能。
Spring3.0 MVC系列∙第1部分:到Spring 3.0 MVC框架简介∙第2部分:在Spring 3.0 MVC创建Hello World应用程序∙第3部分:在Spring 3.0 MVC的形式处理∙第4部分:Spring3 MVC的Tiles Support与Eclipse中的例子插件教程∙第5部分:Spring3 MVC的国际化及本地化教程与范例在Eclipse∙第6部分:Spring3 MVC示例教程Spring主题∙第7部分:创建Spring3 MVC Hibernate 3的示例在Eclipse中使用Maven的在Spring Web MVC,你可以使用任何对象作为命令或表单支持对象,你不需要实现框架特定的接口或基类。
Spring的数据绑定是高度灵活的:例如,将验证错误类型不作为应用系统错误,可以通过评估的不匹配。
因此,你不必重复你的业务对象的属性,简单的无类型的字符串,在表单对象仅仅是为了处理无效的意见,或正确转换的字符串。
相反,它往往是最好直接绑定到业务对象。
请求处理生命周期Spring的Web MVC框架是,像许多其他Web MVC框架,要求为导向,围绕一个中心的servlet,它把请求分派给控制器,提供其他功能,有利于开发Web应用而设计的。
Spring DispatcherServlet DispatcherServlet是Spring IoC容器完全集成,并允许我们使用的每一个Spring的其他功能。
以下是Spring3.0 MVC请求流程的生命周期:客户端将请求发送到Web容器中的HTTP请求的形式。
这个传入的请求被截获由前端控制器(DispatcherServlet的),然后它会试图找出相应的处理程序映射。
帮助处理程序映射,DispatcherServlet将请求派遣适当的控制器。
控制器尝试处理请求和ModelAndView实例的形式返回到前端控制器模型和视图对象。
前端控制器,然后试图解决咨询视图解析器对象的视图(可以是JSP,FreeMarker的,速度等)。
选定的视图,然后返回到客户端呈现。
Spring3.0的特点∙Spring3.0框架支持Java 5。
它提供了注释的配置支持。
Java 5的功能,例如泛型,注解,可以使用可变参数等在Spring。
∙正在引进一种新的表达语言The Spring 的表达语言规划环境地政局局长。
Spring的表达式语言可以使用,同时定义了基于XML和注释的bean定义。
∙Spring3.0框架支持REST Web服务。
∙数据格式可从来没有那么容易。
Spring 3.0支持了注释的格式。
现在,我们可以使用@ DateFimeFormat(ISO = ISO.DATE)和@NumberFormat(样式= Spring.CURRENCY)标注日期和货币格式转换。
∙Spring3.0已经开始支持JPA 2.0的。
配置Spring 3.0的MVC切入点的Spring 3.0 MVC DispatcherServlet 。
DispatcherServlet的是正常的servlet的类,它是HttpServlet的的基类。
因此,我们需要在它web.xml配置。
<web-app><servlet><servlet-name>example</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>example</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping></web-app>在上面的代码片断中,我们必须在web.xml中配置DispatcherServlet的。
请注意,我们已经映射*. HTML URL模式,例如DispatcherServlet的。
因此,任何与*. HTML模式的URL将调用Spring MVC 的前端控制器。
一旦DispatcherServlet的初始化,它会查找一个文件名[servlet-name]-servlet.xml Web应用程序的WEB - INF文件夹中。
在上面的例子中,将寻找所谓example-servlet.xml servlet.xml的框架。
请注意上面的架构图。
WebApplicationContext上图中指定ApplicationContext平原扩展Web应用程序所需的一些额外的功能。
在WebApplicationContext是能够解决的主题,它也与相应的servlet相关。
在WebApplicationContext在ServletContext中的约束,并通过对RequestContextUtils类的静态方法,您可以随时查找在WebApplicationContext。
继续现在,我们有关的Spring 3.0 MVC框架,其生命周期架构的想法,在接下来的部分中,我们将创建一个工作Spring3.0的Hello World应用程序从头。
Spring3 MVC:在Spring 3.0 MVC创建Hello World应用程序Spring3.0 MVC系列的第2部分。
在以前的文章中,我们经历介绍的Spring MVC 3.0框架,其请求处理生命周期和体系结构图。
在这篇文章中,让我们在Spring MVC 3.0创建一个简单的的Hello World 应用程序。
对于创建的Hello World演示应用程序,我们将使用Eclipse IDE中。
我们需要的东西之前,我们与我们的第一个Hello World Struts 2的示例开始,我们将需要一些工具。
1.JDK 1.5以上(下载)2.以上的Tomcat 5.x的或任何其他容器(Glassfish的中,WebSphere,JBoss的,在Weblogic等)(下载)3.Eclipse的3.2.x中,它上面的(下载)4.Spring3.0 MVC JAR文件:(下载)。
以下是此应用程序所需的JAR文件的清单。
o commons-logging-1.0.4.jaro jstl-1.2.jaro org.springframework.asm - 3.0.1.RELEASE - A.jaro org.springframework.beans - 3.0.1.RELEASE - A.jaro org.springframework.context - 3.0.1.RELEASE - A.jaro org.springframework.core - 3.0.1.RELEASE - A.jaro org.springframework.expression - 3.0.1.RELEASE - A.jaro org.springframework.web.servlet - 3.0.1.RELEASE - A.jaro org.springframework.web - 3.0.1.RELEASE - A.jar请注意,根据Spring MVC的当前版本,上述jar文件的版本号可能会改变。
我们的目标我们的目标是创建一个基本的Spring MVC应用中使用最新的3.0版本。
将会有一个索引页,它会显示一个链接”打招呼”给用户。
点击此链接,用户将被重定向到另一页打招呼,它会显示一条消息的”Hello World,Spring3.0!”。
入门让我们开始我们的第一个Spring3.0基于MVC的应用程序。
打开Eclipse转到文件- >新建- >项目,然后选择动态Web项目中的新建项目向导屏幕。
选择动态Web项目后,按”下一步”“。
写项目名称。
例如Spring3MVC。
一旦做到这一点,选择目标运行时环境(如Apache Tomcat的V6.0)。
这是在Eclipse环境中运行的项目。
在此之后按下Finish。
一旦该项目被创建,您可以在Project Explorer中看到它的结构。
现在的WebContent所有所需的JAR文件>的WEB - INF> lib文件夹中复制。
创建此文件夹,如果它不存在。
Spring控制器类我们需要一个Spring MVC控制器类,将处理该请求,并显示”Hello World”消息。
为此,我们将创建一个包net.viralpatel.spring3.controller的源文件夹中。
这个包将包含控制器文件。
创建一个类叫做HelloWorldController net.viralpatel.spring3.controller包并复制到它下面的内容。
文件:net.viralpatel.spring3.controller.HelloWorldControllerpackage net.viralpatel.spring3.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class HelloWorldController {@RequestMapping(“/hello”)public ModelAndView helloWorld() {String message = “Hello World, Spring 3.0!”;return new ModelAndView(“hello”, “message”, message);}}请注意,我们已经注明HelloWorldController类@Controller和7号线和10 @RequestMapping(“/hello”) 当春扫描我们的包,将其识别为一个处理请求的控制器bean这个bean。