下面針對官方文檔列出的支持類型進行舉例。
(本篇例子存于github上,https://github.com/lemonbar/spring-mvc-requestmapping)
可以直接下載, 也可以在瀏覽器中打開進行查看(強烈建議看這個, 里面有詳細的解釋).
git clone https://github.com/lemonbar/spring-mvc-requestmapping準備工作
1. 在WEB-INF下增加一個jsp文件夾, 里面增加兩個jsp文件, 為login.jsp和login_new.jsp
WEB-INF----jsp--------login.jsp--------login_new.jsp
2. 修改spring context xml文件, 增加viewResolver bean的定義
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
3. login.jsp和login_new.jsp文件內容請參考https://github.com/lemonbar/spring-mvc-requestmapping/tree/master/src/main/webapp/WEB-INF/jsp
4. 增加兩個jar/dependency, 我用的是maven, 增加的dependency
<dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
5. 增加一個用來作為Controller的類, 內容參考
https://github.com/lemonbar/spring-mvc-requestmapping/blob/master/src/main/java/com/lemon/spring/controllers/GreetingController.java
到此, 準備工作完成.
ModelAndViewpublic ModelAndView login() { User user = new User(); //構造函數可以指定view的名字,addObject往model中增加一個object. return new ModelAndView("login_new").addObject(user); }Model
public Model login() { User user = new User(); //返回類型是interface, ExtendedModelMap是實現Model接口的一個類. //addAttribute往model中增加一個object. //也可以不傳key, 使用默認名字. //不能定義view的名字,使用當前view(login)的名字. return new ExtendedModelMap().addAttribute("user", user); }Map
public Map<String, User> login() { User user = new User(); Map<String, User> map = new HashMap<String, User>(); map.put("user", user); return map; }String
public String login(Model model) { User user = new User(); model.addAttribute(user); return "login_new"; }void
public void login(Model model) { //默認也是當前路徑. //也可以通過聲明一個ServletResponse/HttpServletResponse的參數,來直接處理response. User user = new User(); model.addAttribute(user); }@ResponseBody
@ResponseBody public String greeting(@PathVariable(value = "userName") String name) { //直接將返回輸出到html body中. return "Hello " + name; }
還有一些其它的, 可能不經常用, 就不一一介紹了。
新聞熱點
疑難解答