摘要:

本教程,主要展示GAE如何集成SpringMVC 框架,同时,实现一个小案例(墙内可以访问http://www.baifeibai.com/ 查看案例)。

所使用技术和工具:
  1. 1. Eclipse-Jee-Juno (version 4.2)
  2. 2. JDK 1.6
  3. 3. Google Plugin for Eclipse
  4. 4. Google App Engine Java SDK 1.7.4
  5. 5. Spring 3.1.0

 

备注:

   在学习本教程之前,您可能需要了解SpringMVC开发技术,同样你也可能需要阅读下我上一篇博文 [GAE 教程] 初识GAE

  • >>项目集成SpringMVC 需要依赖以下jar
    1. 1. aopalliance-1.0.jar
    2. 2. commons-logging-1.1.1.jar

    3. 3. spring-aop-3.1.0.RELEASE.jar

    4. 4. spring-asm-3.1.0.RELEASE.jar

    5. 5. spring-beans-3.1.0.RELEASE.jar

    6. 6.spring-context-3.1.0.RELEASE.jar

    7. 7. spring-context-support-3.1.0.RELEASE.jar

    8. 8. spring-core-3.1.0.RELEASE.jar

    9. 9. spring-expression-3.1.0.RELEASE.jar

    10. 10. spring-web-3.1.0.RELEASE.jar

    11. 11. spring-webmvc-3.1.0.RELEASE.jar

  • >>准备好Jar包以后,将这些jar包拷贝到项目的war/WEB-INF/lib 中

    GAE集成SpringMVC_第1张图片

  • >>导入后,通过Configure Build Path…配置引用下这些包就好了

GAE集成SpringMVC_第2张图片

  • >>配置SpringMVC,首先我们需要在war/WEB-INF/ 下创建一个Spring XML bean的配置文件 {YourServletName}-servlet.xml,用来定义bean 和 试图解析器
         
         
         
         
    1. <beans xmlns="http://www.springframework.org/schema/beans" 
    2.     xmlns:context="http://www.springframework.org/schema/context" 
    3.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    4.     xsi:schemaLocation="  
    5.         http://www.springframework.org/schema/beans       
    6.         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    7.         http://www.springframework.org/schema/context   
    8.         http://www.springframework.org/schema/context/spring-context-3.0.xsd  
    9.         http://www.springframework.org/schema/mvc  
    10.         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
    11.  
    12.      
    13.     <context:component-scan base-package="com.javawill" /> 
    14.  
    15.      
    16.     <bean 
    17.         class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    18.         <property name="prefix"> 
    19.             <value>/WEB-INF/jsp/value> 
    20.         property> 
    21.         <property name="suffix"> 
    22.             <value>.jspvalue> 
    23.         property> 
    24.     bean> 
    25.  
    26. beans> 
  • >>同时,我们需要将Spring 集成到我们的web.xml中,有的人可能IDE无法显示web.xml的内容,只需要刷新web.xml 文件(注意是文件,不是内容)
         
         
         
         
    1. xml version="1.0" encoding="utf-8" standalone="no"?> 
    2. <web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    3.     xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" 
    5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    6.      
    7.     <servlet> 
    8.         <servlet-name>baifeibaiservlet-name> 
    9.         <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class> 
    10.         <load-on-startup>1load-on-startup> 
    11.     servlet> 
    12.     <servlet-mapping> 
    13.         <servlet-name>baifeibaiservlet-name> 
    14.         <url-pattern>*.dourl-pattern> 
    15.     servlet-mapping> 
    16.     <context-param> 
    17.         <param-name>contextConfigLocationparam-name> 
    18.         <param-value>/WEB-INF/baifeibai-servlet.xmlparam-value> 
    19.     context-param> 
    20.      
    21.     <listener> 
    22.         <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class> 
    23.     listener> 
    24.     <welcome-file-list> 
    25.         <welcome-file>index.htmlwelcome-file> 
    26.     welcome-file-list> 
    27.     <servlet> 
    28.         <servlet-name>SystemServiceServletservlet-name> 
    29.         <servlet-class>com.google.api.server.spi.SystemServiceServletservlet-class> 
    30.         <init-param> 
    31.             <param-name>servicesparam-name> 
    32.             <param-value /> 
    33.         init-param> 
    34.     servlet> 
    35.     <servlet-mapping> 
    36.         <servlet-name>SystemServiceServletservlet-name> 
    37.         <url-pattern>/_ah/spi/*url-pattern> 
    38.     servlet-mapping> 
    39. web-app> 
  • >>现在我们看看我们项目的新结构,并实现一个简单的业务,通过Controller 定义一个变量值,并在JSP上展现出来

    GAE集成SpringMVC_第3张图片

  • >>定义Controller.java
         
         
         
         
    1. /**  
    2.  * Create by Javawill in 2013-1-10  
    3.  */ 
    4. package com.javawill.example.spring.controller;  
    5.  
    6. import org.springframework.stereotype.Controller;  
    7. import org.springframework.ui.Model;  
    8. import org.springframework.web.bind.annotation.RequestMapping;  
    9.  
    10. /**  
    11.  * GAE集成SpringMVC Controller 实例  
    12.  * @author  Javawill  
    13.  * @version 1.0  
    14.  */ 
    15. @Controller 
    16. public class SpringController {  
    17.     @RequestMapping("/example/welcome.do")  
    18.     public String Welcome(Model model, String inputval){  
    19.         if ( inputval == null || ("".equals(inputval))) {  
    20.             inputval = "您可以试试在下面的输入框输入值,测试下Spring的传参!";  
    21.         } else {  
    22.             inputval = "您之前输入的值为:" + inputval;  
    23.         }  
    24.         model.addAttribute("hello""您好,欢迎您来到GAE+SpringMVC学习项目演示网站!");  
    25.         model.addAttribute("msg", inputval);  
    26.         return "example/spring/welcome";  
    27.     }  
    28. }  
  • >>JSP页面代码
         
         
         
         
    1. <%@ page language="java" contentType="text/html; charset=UTF-8" 
    2.     pageEncoding="UTF-8"%> 
    3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
    4. > 
    5. <html> 
    6. <head> 
    7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    8. <title>Javawill 演示案例title> 
    9. head> 
    10. <body> 
    11.     <h2>${hello }h2> 
    12.     ${msg }  
    13.     <form action="" method="post"> 
    14.         输入值:<input id="inputval" name="inputval" />   
    15.         <input type="submit" value="确定" /> 
    16.     form> 
    17.  
    18. body> 
    19. html> 
  • >>接下来,我们远程部署到Google 云端,访问下 http://www.baifeibai.com

GAE集成SpringMVC_第4张图片

GAE集成SpringMVC_第5张图片

================================================================= 本教程系列为本人写技术博客练笔之作,高手请无视,转载请点明出处!
=================================================================