SpringレガシープロジェクトでHello Worldを表示させる簡単なサンプルを作成してみました。

環境

  • macOS Sierra 10.12.4
  • Spring Tool Suite 3.8.4

※Spring Tool Suite(STS)のインストールと日本語化については以下のページを参考にしてください。
MacでSpring Tool Suite(STS)のインストールと日本語化

プロジェクトの作成

  1. Spring Tool Suite(STS)のメニューバーのファイル> 新規 > Spring レガシー・プロジェクトをクリック
  2. プロジェクト名に「HelloWorld」と入力
  3. テンプレートは「Simple Spring Web Maven」を選択し、完了をクリック
  4. 「HelloWorld」プロジェクトを副ボタンでクリック > Maven > プロジェクトを更新をクリック
  5. 「HelloWorld」にチェックが入っていることを確認し、OKボタンをクリック
  6. 「HelloWorld」プロジェクトを副ボタンでクリック > 実行 > Maven installをクリック
  7. コンソールに「BUILD SUCCESS」と出力されることを確認

アプリケーションサーバーの設定

STSにアプリケーションサーバーを設定します。今回はPivotal tc Serverを使用しました。

Pivotal tc Serverのインストール

インストールの手順については、こちらのページを参考にしました。Macの場合、homebrewでインストールできるので、以下のコマンドをターミナルで実行します。

$ brew update
$ brew tap pivotal/tap
$ brew install tcserver

STSでアプリケーションサーバーを作成

  1. サーバービューの「使用可能なサーバーがありません。このリンクをクリックして新規サーバーを作成してください」をクリック
  2. Pivotal > Pivotal tc Server v3.0 – v3.2を選択して、次へをクリック
  3. インストールディレクトリーにPivotal tc Serverのlibexecのパスを入力して、次へをクリック
    ※僕がインストールしたバージョンは3.2.5だったので、「/usr/local/Cellar/tcserver/3.2.5/libexec」と入力しました。
  4. Create New Instanceを選択したまま次へをクリック
  5. 任意の名前を入力、テンプレートは「base」をチェックして完了をクリック

サーバーへリソースを追加

  1. 作成したアプリケーションサーバーを副ボタンでクリック > 追加および除去をクリック
  2. 「HelloWorld」を選択し、追加ボタンをクリック
  3. 「HelloWorld」が構成済みのエリアに移動したことを確認し、完了ボタンをクリック

アプリケーションサーバーを起動して画面にアクセス

  1. 作成したアプリケーションサーバーを副ボタンでクリック > 開始をクリック
  2. ブラウザを起動し、「http://localhost:8080/HelloWorld/」にアクセス
  3. 「Click to enter」というリンクが表示されれば、正常に動作しています

「Click to enter」のリンクをクリックしても、リンクに設定されているページが実装されていないので、404エラーが発生します。次は、このリンク先のページで「Hello World」と表示されるようにします。

Controllerクラスの作成

「HelloWorld」プロジェクトのsrc/main/javaに以下のクラスを作成します。

package com.example;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class SampleController {
	
	@RequestMapping(value = "/hello" , method = RequestMethod.GET)
	public String hello(Model model) {
		model.addAttribute("message", "Hello World!");
		return "showMessage";
	}
}

mvc-config.xmlの変更

「Uncomment and your base-package here:〜」のコメントが記述されているcontext:component-scanタグのコメントアウトを外し、base-package属性に作成したControllerクラスのパッケージ名を指定します。

<context:component-scan base-package="com.example"/>

index.jspのリンク先変更

「Click to enter」のリンク先を「/hello」に変更します。

<!DOCTYPE html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

<html>
	<head>
		<meta charset="utf-8">
		<title>Welcome</title>
	</head> 
	<body>
		<!-- リンク先変更
			<c:url value="/showMessage.html" var="messageUrl" /> -->
		<c:url value="/hello" var="messageUrl" />
		<a href="${messageUrl}">Click to enter</a>
	</body>
</html>

再度画面にアクセス

再度「http://localhost:8080/HelloWorld/」にアクセスします。「Click to enter」のリンクをクリックし、「Hello World」と表示されることを確認します。