今回は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) } }
<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>