本文使用 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/

 

 

 

 














其它文章


arrow
arrow
    創作者介紹
    創作者 PG Levin Li 的頭像
    PG Levin Li

    程式開發學習之路

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