GAE集成SpringMVC

摘要:

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

所使用技术和工具:

  1. Eclipse-Jee-Juno (version 4.2)
  2. JDK 1.6
  3. Google Plugin for Eclipse
  4. Google App Engine Java SDK 1.7.4
  5. Spring 3.1.0

备注:

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

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

    3. spring-aop-3.1.0.RELEASE.jar

    4. spring-asm-3.1.0.RELEASE.jar

    5. spring-beans-3.1.0.RELEASE.jar

    6. spring-context-3.1.0.RELEASE.jar

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

    8. spring-core-3.1.0.RELEASE.jar

    9. spring-expression-3.1.0.RELEASE.jar

    10. spring-web-3.1.0.RELEASE.jar

    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     <!-- 对web包中的所有类进行扫描,以完成bean的创建和自动依赖注入功能 -->
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>.jsp</value>
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     <!-- spring mvc的servlet,加载WEB-INF/baifeibai-servlet.xml的配置文件,以启动Spring MVC模块 -->
 7     <servlet>
 8         <servlet-name>baifeibai</servlet-name>
 9         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
10         <load-on-startup>1</load-on-startup>
11     </servlet>
12     <servlet-mapping>
13         <servlet-name>baifeibai</servlet-name>
14         <url-pattern>*.do</url-pattern>
15     </servlet-mapping>
16     <context-param>
17         <param-name>contextConfigLocation</param-name>
18         <param-value>/WEB-INF/baifeibai-servlet.xml</param-value>
19     </context-param>
20     <!-- spring容器启动监听器 -->
21     <listener>
22         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
23     </listener>
24     <welcome-file-list>
25         <welcome-file>index.html</welcome-file>
26     </welcome-file-list>
27     <servlet>
28         <servlet-name>SystemServiceServlet</servlet-name>
29         <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
30         <init-param>
31             <param-name>services</param-name>
32             <param-value />
33         </init-param>
34     </servlet>
35     <servlet-mapping>
36         <servlet-name>SystemServiceServlet</servlet-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  <a href="mailto:[email protected]">Javawill</a>
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 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 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="<c:url  value='/example/welcome.do'  />" method="post">
14         输入值:<input id="inputval" name="inputval" /> 
15         <input type="submit" value="确定" />
16     </form>
17 
18 </body>
19 </html>
复制代码

GAE集成SpringMVC_第4张图片

GAE集成SpringMVC_第5张图片

你可能感兴趣的:(springMVC)