spring 3.0MVC 一个简单demo

本文介绍如何在项目中选择MVC框架,以Spring3.0MVC为例,通过配置文件、控制器类和参数传递实现页面展示。

 http://longflang.iteye.com/blog/889146

今天看到网上的文章,说如何在项目中选择MVC框架,看了一下Spring 3.0 MVC 的文档,感觉用注解的方式还是比较方便。跟Struts2比起来各有优点(注:以前用过struts1.x,现在用的是Strust2.x)。如果要选择的话看实际项目架构情况来选择。不说了,动手做一个spring 3.0MVC 的demo,包含页面和controller之间的参数传递(list,map,object,Sting) 及页面的展示。

 

1)创建web工程

2)引入相关jar包(注:commons-fileupload.jar,commons-logging.jar不在spring官方下载包中,需另外添加)

3)配置web.xml

Xml代码   收藏代码
  1. <servlet>  
  2.     <servlet-name>example</servlet-name>  
  3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.     <load-on-startup>1</load-on-startup>  
  5. </servlet>  
  6. <servlet-mapping>  
  7.     <servlet-name>example</servlet-name>  
  8.     <url-pattern>/</url-pattern>  
  9. </servlet-mapping>  

 

4)编写引用mvc的配置文件 example-servlet.xml

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans     
  6.            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
  7.            http://www.springframework.org/schema/context     
  8.            http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
  9.     <context:component-scan base-package="com.longflang.controller" />  
  10.   
  11.     <bean id="viewResolver"  
  12.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  13.         <property name="prefix" value="/WEB-INF/jsp/" />  
  14.         <property name="suffix" value=".jsp" />  
  15.     </bean>  
  16.   
  17. </beans>  

 注:example-servlet.xml的命名: example为web.xml定义的名称。系统启动时自己扫描以web定义名称-servlet.xml的配置文件

 

5)编写controller  DemoController .java

Java代码   收藏代码
  1. package com.longflang.controller;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import org.springframework.stereotype.Controller;  
  9. import org.springframework.ui.Model;  
  10. import org.springframework.web.bind.annotation.PathVariable;  
  11. import org.springframework.web.bind.annotation.RequestMapping;  
  12. import org.springframework.web.bind.annotation.RequestParam;  
  13. import org.springframework.web.servlet.ModelAndView;  
  14.   
  15. import com.longflang.pojo.User;  
  16.   
  17. @Controller  
  18. public class DemoController {  
  19.     @RequestMapping(value="getmv")  
  20.     public ModelAndView getInfo(){  
  21.           
  22.         ModelAndView modelAndView = new ModelAndView();  
  23.         //传String  
  24.         modelAndView.addObject("title""Return ModelAndView:");  
  25.         //传Object  
  26.         User u = new User("longflang","12");  
  27.         modelAndView.addObject("user", u);  
  28.         //传List  
  29.         List<User> userlist = new ArrayList<User>();  
  30.         userlist.add(new User("longflang1","123"));  
  31.         userlist.add(new User("longflang2","345"));  
  32.         userlist.add(new User("longflang3","45"));  
  33.         modelAndView.addObject("list", userlist);  
  34.         //传Map  
  35.         Map<String, String> usermap = new HashMap<String, String>();  
  36.         usermap.put("name""longflang");  
  37.         usermap.put("age""234");  
  38.         modelAndView.addObject("user", usermap);  
  39.           
  40.         modelAndView.setViewName("result");  
  41.         return modelAndView;  
  42.     }  
  43.     @RequestMapping(value="string")  
  44.     public String getInfo(Model model){  
  45.           
  46.         //传String  
  47.         model.addAttribute("title""return String:");  
  48.         //传Object  
  49.         User u = new User("longflang","12");  
  50.         model.addAttribute("user", u);  
  51.         //传List  
  52.         List<User> userlist = new ArrayList<User>();  
  53.         userlist.add(new User("longflang1","123"));  
  54.         userlist.add(new User("longflang2","345"));  
  55.         userlist.add(new User("longflang3","45"));  
  56.         model.addAttribute("list", userlist);  
  57.         //传Map  
  58.         Map<String, String> usermap = new HashMap<String, String>();  
  59.         usermap.put("name""longflang");  
  60.         usermap.put("age""234");  
  61.         model.addAttribute("map", usermap);  
  62.           
  63.         return "result";  
  64.     }  
  65.     @RequestMapping(value="strparam")  
  66.     public String getInfo(@RequestParam("name") String name ,@RequestParam("age") String age,Model model){  
  67.           
  68.         //传String  
  69.         model.addAttribute("title""return String: @RequestParam");  
  70.         //传Object  
  71.         User u = new User(name,age);  
  72.         model.addAttribute("user", u);  
  73.         //传List  
  74.         List<User> userlist = new ArrayList<User>();  
  75.         userlist.add(new User(name,age));  
  76.         userlist.add(new User(name,age));  
  77.         userlist.add(new User(name,age));  
  78.         model.addAttribute("list", userlist);  
  79.         //传Map  
  80.         Map<String, String> usermap = new HashMap<String, String>();  
  81.         usermap.put("name", name);  
  82.         usermap.put("age", age);  
  83.         model.addAttribute("map", usermap);  
  84.           
  85.         return "result";  
  86.     }  
  87.     @RequestMapping(value="strparam/{name}")  
  88.     public String getInfo2(@PathVariable("name") String name ,@RequestParam("age") String age,Model model){  
  89.           
  90.         //传String  
  91.         model.addAttribute("title""return String: @PathVariable");  
  92.         //传Object  
  93.         User u = new User(name,age);  
  94.         model.addAttribute("user", u);  
  95.         //传List  
  96.         List<User> userlist = new ArrayList<User>();  
  97.         userlist.add(new User(name,age));  
  98.         userlist.add(new User(name,age));  
  99.         userlist.add(new User(name,age));  
  100.         model.addAttribute("list", userlist);  
  101.         //传Map  
  102.         Map<String, String> usermap = new HashMap<String, String>();  
  103.         usermap.put("name", name);  
  104.         usermap.put("age", age);  
  105.         model.addAttribute("map", usermap);  
  106.           
  107.         return "result";  
  108.     }  
  109.       
  110. }  

 

6)定义POJO User.java

Java代码   收藏代码
  1. package com.longflang.pojo;  
  2.   
  3. public class User {  
  4.     private String name;  
  5.     private String age;  
  6.       
  7.     public User() {  
  8.         super();  
  9.         // TODO Auto-generated constructor stub  
  10.     }  
  11.     public User(String name, String age) {  
  12.         super();  
  13.         this.name = name;  
  14.         this.age = age;  
  15.     }  
  16.     public String getName() {  
  17.         return name;  
  18.     }  
  19.     public void setName(String name) {  
  20.         this.name = name;  
  21.     }  
  22.     public String getAge() {  
  23.         return age;  
  24.     }  
  25.     public void setAge(String age) {  
  26.         this.age = age;  
  27.     }  
  28. }  

 

 

7)编写调用页面及结果页面 index.jsp

 

Html代码   收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  3. <html>  
  4.   <head>  
  5.   </head>  
  6.   <body>  
  7.     <a href="http://localhost:8080/mvc/getmv">ModelAndView:http://localhost:8080/mvc/getmv</a> <br>  
  8.     <a href="http://localhost:8080/mvc/string">String:http://localhost:8080/mvc/string</a> <br>  
  9.     <a href="http://localhost:8080/mvc/strparam?name=longflang&age=234">String@RequestParam:http://localhost:8080/mvc/strparam?name=longflang&age=234</a> <br>  
  10.     <a href="http://localhost:8080/mvc/strparam/longflang?age=234">String@PathVariable:http://localhost:8080/mvc/strparam/longflang?age=234</a> <br>  
  11.   </body>  
  12. </html>  

 

result.jsp(注:位置与配置文件定义相同\WEB-INF\jsp\result.jsp )

 

Html代码   收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>  
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4. <html>  
  5.   <head>  
  6.   </head>  
  7.     
  8.   <body>   
  9.         <br>String:${title }<br>  
  10.         Object:<br>  
  11.         name:${user.name }&nbsp;&nbsp;  
  12.         age:${user.age }<br>  
  13.         <hr>  
  14.         List:<br>  
  15.         <c:forEach var="u" items="${list}">  
  16.         name:${u.name } &nbsp;&nbsp;  
  17.         age:${u.age }<br>  
  18.         </c:forEach>  
  19.         <hr>  
  20.         Map:<br>  
  21.         name:${map.name }&nbsp;&nbsp;  
  22.         age:${map.age }<br>  
  23.         <hr>  
  24.           
  25.   </body>  
  26. </html>  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值