本文使用 Spring Web model-view-controller (MVC) framework 建立一個簡單的一個Hello World 程式 1、本文中使用的相關技術 Eclipse 4.2 Version: Juno Service Release 2 Maven 3.0.5 JAVA JDK 1.7.0_51 Spring 4.1.1.RELEASE  P.S Spring 3.x, 需 JDK 1.5 以上,但SpringMVC Annotation Project需要 Servlet3.x 以上 2、建立一個Maven專案 可參考 建立一個基本簡單的Spring MVC project maven部分,但此專案不需要 web.xml 3、加入 Spring 4.1.1.RELEASE.jar, jstl.jar以及servlet.jar    加入在Maven專案中的pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   <modelVersion>4.0.0</modelVersion>   <groupId>com.sample</groupId>   <artifactId>SampleSpringMVC-1</artifactId>   <version>0.0.1-SNAPSHOT</version>   <packaging>war</packaging>     <properties> <jdk.version>1.7</jdk.version> <spring.version>4.1.1.RELEASE</spring.version> <jstl.version>1.2</jstl.version> <javax.servlet.version>3.1.0</javax.servlet.version> </properties> <dependencies> <!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- jstl for jsp page --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <!-- servlet api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${javax.servlet.version}</version> <scope>provided</scope> </dependency> </dependencies> <build>    <finalName>SampleSpringMVC-1</finalName>    <plugins>        <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>2.3</version>        <configuration>                <source>1.7</source>                <target>1.7</target>        </configuration>    </plugin>    <!-- 不包web.xml -->     <plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-war-plugin</artifactId>  <version>2.3</version>  <configuration>        <failOnMissingWebXml>false</failOnMissingWebXml>  </configuration> </plugin>    </plugins> </build> </project>

 

4. 建立Controller & Mapping     在Spring 3 裡大量使用 annotation 。 如: @Controller 目錄 : src/main/java/com/sample/web/controller 檔名 : HelloController.java 程式碼:

package com.sample.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {

 @RequestMapping(value = { "/", "/welcome**" }, method = RequestMethod.GET)
 public ModelAndView welcomePage() {

  ModelAndView model = new ModelAndView();
  model.addObject("message", "Hello World");
  model.setViewName("hello");
  return model;

 }

}

5. 建立JSP 頁面 目錄 : src/main/webapp/WEB-INF/pages/ 檔名 : hello.jsp 程式碼: <html> <body> <h1>SpringMVC - Annotation :${message}</h1> </body> </html>

6.建立 AppConfig.java (Spring 設定) 如: @Configuration 目錄 : src/main/java/com/sample/config 檔名 : AppConfig.java 程式碼:

package com.sample.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;


@EnableWebMvc
@Configuration
@ComponentScan({ "com.sample.web.*" })
public class AppConfig {

 @Bean
 public InternalResourceViewResolver viewResolver() {
  InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
  viewResolver.setViewClass(JstlView.class);
  viewResolver.setPrefix("/WEB-INF/pages/");
  viewResolver.setSuffix(".jsp");
  return viewResolver;
 }
 
}

7.建立 SpringMvcInitializer.java (Server 啟動此project時必須讀取設定,如同web.xml) 目錄 : src/main/java/com/sample/config/core 檔名 : SpringMvcInitializer.java

package com.sample.config.core;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import com.sample.config.AppConfig;

public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

 @Override
 protected Class[] getRootConfigClasses() {
  return new Class[] { AppConfig.class };
 }

 @Override
 protected Class[] getServletConfigClasses() {
  return null;
 }

 @Override
 protected String[] getServletMappings() {
  return new String[] { "/" };
 }
 
}

8.執行成功畫面: URL = http://127.0.0.1:8080/SampleSpringMVC-1/

 

 

 

 

其它文章

文章標籤
全站熱搜
創作者介紹
創作者 PG Levin Li 的頭像
PG Levin Li

程式開發學習之路

PG Levin Li 發表在 痞客邦 留言(0) 人氣(72)