《spring30 MVC之中文教程.doc》由会员分享,可在线阅读,更多相关《spring30 MVC之中文教程.doc(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、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向客户端呈现视图。 喜欢速度与其他视图技术集成,F
2、reemarker的,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的 在
3、Spring Web MVC,你可以使用任何对象作为命令或表单支持对象,你不需要实现框架特定的接口或基类。 Spring的数据绑定是高度灵活的:例如,将验证错误类型不作为应用系统错误,可以通过评估的不匹配。 因此,你不必重复你的业务对象的属性,简单的无类型的字符串,在表单对象仅仅是为了处理无效的意见,或正确转换的字符串。 相反,它往往是最好直接绑定到业务对象。 请求处理生命周期 Spring的Web MVC框架是,像许多其他Web MVC框架,要求为导向,围绕一个中心的servlet,它把请求分派给控制器,提供其他功能,有利于开发Web应用而设计的。 Spring DispatcherServ
4、let DispatcherServlet是Spring IoC容器完全集成,并允许我们使用的每一个Spring的其他功能。 以下是Spring3.0 MVC请求流程的生命周期: 客户端将请求发送到Web容器中的HTTP请求的形式。 这个传入的请求被截获由前端控制器 (DispatcherServlet的),然后它会试图找出相应的处理程序映射 。 帮助处理程序映射,DispatcherServlet将请求派遣适当的控制器。 控制器尝试处理请求和ModelAndView实例的形式返回到前端控制器模型和视图对象。 前端控制器,然后试图解决咨询视图解析器对象的视图(可以是JSP,FreeMarker
5、的,速度等) 。 选定的视图,然后返回到客户端呈现。 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)和NumberForma
6、t(Style= Spring.CURRENCY)标注日期和货币格式转换。 Spring3.0已经开始支持JPA 2.0的。 配置Spring 3.0的MVC 切入点的Spring 3.0 MVC DispatcherServlet 。 DispatcherServlet的是正常的servlet的类,它HttpServlet HttpServlet的的基类。 因此,我们需要在它web.xml配置。 exampleorg.springframework.web.servlet.DispatcherServlet1example*.html在上面的代码片断中,我们必须在web.xml中配置Disp
7、atcherServlet的。 请注意,我们已经映射*. HTML URL模式,例如DispatcherServlet的。 因此,任何与*. HTML模式的URL将调用Spring MVC的前端控制器。 一旦DispatcherServlet的初始化,它会查找一个文件名servlet-name-servlet.xml Web应用程序的WEB - INF文件夹中。 在上面的例子中,将寻找所谓example-servlet.xml servlet.xml的框架。 请注意上面的架构图。 WebApplicationContext上图中指定ApplicationContext平原扩展Web应用程序所需
8、的一些额外的功能。 在WebApplicationContext是能够解决的主题,它也与相应的servlet相关。 在WebApplicationContext在ServletContext中的约束,并通过对RequestContextUtils类的静态方法,您可以随时查找在WebApplicationContext。 现在,我们有关的Spring 3.0 MVC框架,其生命周期架构的想法, 在接下来的部分中,我们将创建一个工作Spring3.0的 Hello World应用程序从头。 Spring3 MVC:在Spring 3.0 MVC创建Hello World应用程序 Spring3.0
9、 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等)( 下载
10、) 3. Eclipse的3.2.x中,它上面的( 下载 ) 4. Spring3.0 MVC JAR文件:( 下载 )。 以下是此应用程序所需的JAR文件的清单。 o commons-logging-1.0.4.jar o jstl-1.2.jar o org.springframework.asm - 3.0.1.RELEASE - A.jar o org.springframework.beans - 3.0.1.RELEASE - A.jar o org.springframework.context - 3.0.1.RELEASE - A.jar o org.springframew
11、ork.core - 3.0.1.RELEASE - A.jar o org.springframework.expression - 3.0.1.RELEASE - A.jar o org.springframework.web.servlet - 3.0.1.RELEASE - A.jar o org.springframework.web - 3.0.1.RELEASE - A.jar 请注意,根据Spring MVC的当前版本,上述jar文件的版本号可能会改变。 我们的目标 我们的目标是创建一个基本的Spring MVC应用中使用最新的3.0版本。 将会有一个索引页,它会显示一个链接”
12、打招呼”给用户。 点击此链接,用户将被重定向到另一页打招呼 ,它会显示一条消息的”Hello World,Spring3.0!”。 入门 让我们开始我们的第一个Spring3.0基于MVC的应用程序。 打开Eclipse转到文件- 新建- 项目,然后选择动态Web项目中的新建项目向导屏幕。 选择动态Web项目后,按” 下一步”“ 。 写项目名称。 例如Spring3MVC。 一旦做到这一点,选择目标运行时环境(如Apache Tomcat的V6.0)。 这是在Eclipse环境中运行的项目。 在此之后按下Finish。 一旦该项目被创建,您可以在Project Explorer中看到它的结构。
13、 现在的WebContent所有所需的JAR文件的WEB - INF lib文件夹中复制。 创建此文件夹,如果它不存在。 Spring控制器类 我们需要一个Spring MVC控制器类,将处理该请求,并显示”Hello World”消息。 为此,我们将创建一个包net.viralpatel.spring3.controller的源文件夹中。 这个包将包含控制器文件。 创建一个类叫做HelloWorldController net.viralpatel.spring3.controller包并复制到它下面的内容。 文件:net.viralpatel.spring3.controller.Hell
14、oWorldControllerpackage 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 Mode
15、lAndView helloWorld() String message = Hello World, Spring 3.0!; return new ModelAndView(hello, message, message); 请注意,我们已经注明HelloWorldController类7行 Controller和10行RequestMapping(“/hello”) 当Spring扫描我们的包,将其识别为一个处理请求的控制器bean这个bean。 RequestMapping注解告诉Spring,这个控制器应该处理所有请求/ URL路径打招呼开始。 这包括/hello/*和/hello.
16、html 。 在HelloWorld()方法返回ModelAndView对象。 ModelAndView对象,试图解决一个名为”Hello”和数据模型是被传递回浏览器,所以我们可以在JSP访问数据视图。 逻辑视图名称解析为”/WEB-INF/jsp/hello.jsp” 我们将讨论这在短期内如何的”Hello”,这是在ModelAndView对象返回的逻辑名称映射到路径/ WEB-INF/jsp/hello.jsp。 ModelAndView对象还包含了一个关键的”消息”和价值的”Hello World,Spring3.0!”的消息。 这是数据,我们通过我们的观点。 通常情况下,这将是一个价值
17、形式的Java bean将包含要显示的数据我们认为对象。 在这里,我们只是传递一个字符串。 这样的观点:创建JSP 要显示Hello World消息,我们将创建一个JSP。 请注意,这个JSP是创建文件夹/ WEB-INF/jsp。 创建hello.jsp下WEB-INF/jsp目录,并复制以下内容进去。 文件:WEB-INF/jsp/hello.jsp Spring 3.0 MVC Series: Hello World - ViralP $message上面的JSP只显示一条消息,使用表达式$message 。 请注意,” message”的名称,我们在设置一个消息字符串ModelAndV
18、iew对象。 同时,我们也将需要一个index.jsp文件,这将是我们的应用程序的入口点。 创建一个WebContent文件夹下的文件在您的项目并复制以下内容的index.jsp。 文件的WebContent / index.jsp的 Spring 3.0 MVC Series: Index - ViralP Say HelloSpring MVC的映射Web.xml中 正如在以前的文章(Spring3.0 MVC)讨论,Spring MVC应用的切入点将是在部署描述符(web.xml)中定义的Servlet。 因此,我们将定义在web.xml中的一个条目org.springframework
19、.web.servlet.DispatcherServlet org.springframework.web.servlet.DispatcherServlet类。 打开web.xml文件,该文件是在WEB - INF文件夹,并复制粘贴下面的代码。 文件:WEB-INF/web.xml中 Spring3MVC index.jsp spring org.springframework.web.servlet.DispatcherServlet 1 spring *.html 上面的代码将在web.xml中映射URL模式*. HTML的DispatcherServlet。 另外请注意,我们已经定义
20、作为欢迎文件的index.jsp。 这里有一点要注意标签在web.xml中的servlet的名称。 DispatcherServlet的初始化后,它会查找一个文件名servlet-name-servlet.xml Web应用程序的WEB - INF文件夹中。 在这个例子中,该框架将称为文件spring-servlet.xml寻找。 Spring配置文件 The Spring - servlet.xml中创建一个文件在WEB - INF文件夹,并复制到它下面的内容。 文件:WEB-INF/spring-servlet.xml 在上面的XML配置文件,我们已经定义了一个标记。 这将允许Spring
21、载入net.viralpatel.spring3.controller从包中的所有组件和它的所有子包。 这将载入我们HelloWorldController类。 另外,我们定义一个bean viewResolver 。 这个bean将解决意见,并添加前缀字符串/ WEB-INF/jsp /以及后缀。JSP在ModelAndView的观点。 请注意,我们已经在我们的HelloWorldController类,返回一个ModelAndView对象的视图名称的”Hello”。 这将是解决路径/ WEB-INF/jsp/hello.jsp。 这是所有Folks 您可能需要运行的应用程序现在看到的结果。
22、 我假设你已经在Eclipse中配置Tomcat的。 所有您需要做的: 从”窗口”“显示视图”“服务器打开服务器视图。 在此视图中右键单击并选择New Server,并添加您的服务器的详细信息。 要运行该项目,从Project Explorer中的项目名称上点击右键并选择运行在服务器上运行(快捷键:ALT + SHIFT + X,R ) 下载源代码 点击这里下载源代码(9.05kb) 在本教程中,我们创建了一个小型的Hello World应用程序,使用Spring 3.0 MVC框架。 此外,我们了解了Spring的配置和喜欢不同Controller RequestMapping Reques
23、tMapping的。 在下一篇文章中,我们将看到它是多么容易使用Spring 3.0的MVC来处理表单数据。 Spring3 MVC:在Spring 3.0 MVC的处理形式 Spring3.0 MVC系列的第3部分。 在以前的文章中,我们创建了一个在Spring MVC的Hello World应用程序。 我们俯身如何在web.xml中配置Spring MVC中,如何使用不同的注释,如控制器, RequestMapping的等在这篇文章中,让我们来看看如何处理在Spring 3.0 MVC的形式。我们将利用我们在以前的文章中创建一个基本参考,并添加在它的形式的功能框架。 另外,我们创建的应用程
24、序将是一个联系人管理器应用程序。 我们的目标 我们的目标是创建基本的联系人管理器应用程序。 这个应用程序将有一个表格,从用户的详细联系方式。 现在我们将只打印在日志中的细节。 我们将学习如何捕捉在Spring3 MVC的表单数据。 入门 让我们添加的接触形式,以Spring3 MVC Hello World应用程序。 打开index.jsp文件,并改变它,以下列: 文件的WebContent / index.jsp的 上面的代码将重定向用户contacts.html页。 查看- contact.jsp 创建一个JSP文件,将显示联系表格给我们的用户。 文件:/的WebContent / WEB
25、 - INF / JSP / contact.jsp Spring 3 MVC Series - Contact ManagerContact Manager First Name Last Name Email Telephone 在这里,我们在上面的JSP显示的形式。 请注意的形式提交给 addContact.html页。 在Spring3添加的表格和控制器 现在我们将添加在The Spring 3的逻辑显示的形式,并获取它的值。 为此,我们将创建两个Java文件。 首先Contact.java这只不过是形式显示/检索从屏幕上的数据和ContactController.java Conta
26、ctController.java这是Spring的控制器类。 文件:net.viralpatel.spring3.form.Contactpackage net.viralpatel.spring3.form;public class Contact private String firstname; private String lastname; private String email; private String telephone; /. getter and setter for all above fields.上述文件是从屏幕上的数据的接触形式持有。 请注意,我没有表现出g
27、etter和setter方法。 您可以按ALT + SHIFT + S,R pressiong这些方法产生。 文件:net.viralpatel.spring3.controller.ContactControllerpackage net.viralpatel.spring3.controller;import net.viralpatel.spring3.form.Contact; import org.springframework.stereotype.Controller;import org.springframework.validation.BindingResult;impo
28、rt org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.SessionAttributes;import org.springframework.web.servlet.ModelAndView;Co
29、ntrollerSessionAttributespublic class ContactController RequestMapping(value = /addContact, method = RequestMethod.POST) public String addContact(ModelAttribute(contact) Contact contact, BindingResult result) System.out.println(First Name: + contact.getFirstname() + Last Name: + contact.getLastname(
30、); return redirect:contacts.html; RequestMapping(/contacts) public ModelAndView showContacts() return new ModelAndView(contact, command, new Contact(); 在上面的控制器类,请注意,我们已经创建了两个请求映射/联系人/ addContact的方法。 方法showContacts()时将调用用户对一个URL contacts.html的请求。 这种方法将呈现一个模型,名为”command”。 请注意ModelAndView ModelAndView对
31、象,我们已经通过一个名为”命令”空白的联系对象。 Spring框架预计name命令的对象,如果您使用在你的JSP文件。 另外请注意, addContact()方法,我们有注明此RequestMapping的,并通过一个属性的方法=“RequestMethod.POST” 。 因此,该方法将被调用,只有当用户生成一个POST方法请求URL / addContact.html。 我们已经注明ModelAttribute与标注的参数联系。 这将结合从请求对象联系的数据。 在此方法中,我们只印的名字和姓氏值和重定向的视图cotnacts.html。 这是所有Folks现在的形式完成。 只要运行在Ecl
32、ipse应用程序由pression ALT + SHIFT + X,R。它将显示的联系表格。 只需输入视图的值,然后按添加按钮。 一旦你按下按钮,它会打印SYSOUT日志的名字和姓氏。 下载源代码 点击这里下载源代码(7.43kb) 在这篇文章中,我们将学习如何创建一个表单,使用The Spring 3 MVC,并显示在JSP。 此外,我们学会了如何检索使用ModelAttribute注解的形式值。 在下一节 ,我们将通过在Spring3 MVC的表单验证和不同的数据转换方法。 Spring 3 MVC: Tiles Plugin Tutorial with Example in Eclips
33、eSpring3.0 MVC系列的第4部分。 在以前的文章中,我们看到了如何创建使用Spring MVC的表单,并显示在JSP。 同时,我们也了解注解ModelAttribute 。 在这一部分,我们将讨论关于Tiles框架和它与Spring 3.0 MVC的集成。 我们将添加Tiles Support支持我们的HelloWorld Spring应用程序,我们在前面部分中创建的。 我强烈建议你去通过以前的文章中和下载我们的示例应用程序的源代码。 Tiles Support2 如今,网站一般分为可重复使用的模板正在呈现不同的网页之间的的。 例如,一个网站中包含的页眉,页脚,菜单等项目仍然通过了该
34、网站相同,并给它一个共同的外观和感觉。 这是很难很难的代码在每一个网页,如果以后需要改变是不是所有的页面需要修改。 因此,我们使用模板化机制。 我们创建一个共同的页眉,页脚,菜单页,其中包括在每一页。 Tiles Support插件允许模板和组件。 事实上,这两种机制是相似的:你定义页面的某些部分(a ”Tile”)组装建立另一部分或整页。 A部分参数,使动态内容,并且可以在Java语言中的一种方法。 Tiles是用来保持一致的外观和感觉整个Web应用程序的所有网页模板系统。 增加模板的可重用性和减少代码重复。 是指在一个中央配置文件的网站的一个共同的布局,这种布局可以延长Web应用程序的所有
35、网页。 我们的应用程序布局 我们的目标是我们的Spring3 HelloWorld应用程序添加页眉,页脚和菜单。 以下将是相同的布局。 所需的jar文件 为了增加Tiles Support到我们Spring3的应用程序的支持,我们将需要几个jar文件。 以下是在我们的例子中的JAR名单。 在WEB-INF/lib文件夹中添加这些JAR。 在上面的列表中突出显示的jar文件要在Tiles Support一体化项目增添了新的罐子。 在Spring MVC的配置Tiles框架 要配置Tiles,an entry for bean TilesConfigure has to be made in spring-servlet.xml。 打开WEB - INF文件夹的Spring- servlet.xml中之 间添加以下代码 标记。 文件:/的WebContent / WEB - INF /Spring- servlet.xml中 org.springframework.web.servlet.view.tiles2.TilesView /WEB-INF/tiles.xml