読者です 読者をやめる 読者になる 読者になる

SpringMVC、MongoDBを使ってみたその2

今回はMongoDBはなしです。SpringMVCのみに触れます。

画面を表示する

画面を表示するControllerクラスを実装します。
1) @Controllerアノテーションをつけると、このクラスがコントローラクラスとなります。
2) @RequestMapping(value = "/", method = RequestMethod.GET) で
http://localhost:8080/<コンテキスト名>/ でアクセスされます。
ここのvalueのところに{id}とかつけると、RESTfulぽくURL内にIDをつけれます。
method = RequestMethod.GET でGETでアクセスがあったときに、
このメソッドにアクセスされます。
Spring1.x系を使っていたときより全然楽になってるなぁ…

3) DBから引っ張ってきたデータをView部分に表示するためにmodelに突っ込んでいます。
ここでは、addAttributeの第一引数を"list"にしていますが、引数がないメソッドもあります。
引数を渡したバージョンは、エラーバインドがうまくいかなかったので、
出来れば第一引数がないバージョンがいいかもしれません。

4) で表示するJSPを指定してます。
JSPのパス指定はservlet-context.xmlで指定しています。
この場合は/WEB-INF/views/home.jsp を表示します。
JSPの中身は直接ソースを参照してください。
EL式とか使ってます。

HomeController.java

@Controller // --- 1)
public class HomeController extends DBController{
	
	@RequestMapping(value = "/", method = RequestMethod.GET) // --- 2)
	public String home(Locale locale, Model model ) {
		ServersDao dao = new ServersDao();
		List<ServerBean> list = dao.find(getDb());
		model.addAttribute("list", list); // --- 3)
		return "home";                    // --- 4)
	}
}

servlet-context.xml

	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>