Spring MVCで@Controllerアノテーションを使って画面を表示してみる。


スポンサーリンク

前回の記事からの続きです。
@Controllerと@RequestMappingの使い方の実際のサンプルを見てみます。

まずはフォルダ構成からです。
f:id:sho322:20140831122456j:plain

web.xml,Friend.java, FriendForm.javaは以下の記事のものと同じなので、こちらを参照してください。
前の記事

mvc-config.xmlというSpringの設定ファイルに

<context:component-scan base-package="sample2.controller"/>

を書きます。

これで、コントローラを置くパッケージを指定します。
指定したパッケージとそのサブパッケージがスキャン対象になります。

で、コントローラを記述するクラスはこちら。

package sample2.controller;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import sample1.domain.Friend;
import sample1.form.FriendForm;

@Controller
public class FriendController {
	private static final Log logger = LogFactory.getLog(FriendController.class);
	
	@RequestMapping(value="/friend_input")
	public String inputFriend() {
		logger.info("inputFriend called");
		return "/jsp/FriendForm";
	}
	
	@RequestMapping(value="/friend_save")
	public String saveFriend(FriendForm friendForm, Model model) {
		logger.info("saveFriend called");
		
		Friend friend = new Friend();
		friend.setName(friendForm.getName());
		friend.setAge(friendForm.getAge());
		friend.setInterest(friendForm.getInterest());
		
		model.addAttribute("friend", friend);
		return "/jsp/FriendDetails";
	}
}
http://localhost:8080/spring-web/friend_input

にリクエストを飛ばすと、こんな画面が出てきます。
f:id:sho322:20140831122502j:plain

「友人を追加する」ボタンを押すと、詳細画面に飛ばすこともできます。

jspなどは上のリンクの記事を見てください。

Spring MVC: A Tutorial

Spring MVC: A Tutorial