转一篇关于spring mvc的博文,文章的看点在于Controll类与页面的交互部分。转自: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
- <servlet>
- <servlet-name>example</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>example</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
4)编写引用mvc的配置文件 example-servlet.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <context:component-scan base-package="com.longflang.controller" />
- <bean id="viewResolver"
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/jsp/" />
- <property name="suffix" value=".jsp" />
- </bean>
- </beans>
注:example-servlet.xml的命名: example为web.xml定义的名称。系统启动时自己扫描以web定义名称-servlet.xml的配置文件
5)编写controller DemoController .java
- package com.longflang.controller;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.servlet.ModelAndView;
- import com.longflang.pojo.User;
- @Controller
- public class DemoController {
- @RequestMapping(value="getmv")
- public ModelAndView getInfo(){
- ModelAndView modelAndView = new ModelAndView();
- //传String
- modelAndView.addObject("title", "Return ModelAndView:");
- //传Object
- User u = new User("longflang","12");
- modelAndView.addObject("user", u);
- //传List
- List<User> userlist = new ArrayList<User>();
- userlist.add(new User("longflang1","123"));
- userlist.add(new User("longflang2","345"));
- userlist.add(new User("longflang3","45"));
- modelAndView.addObject("list", userlist);
- //传Map
- Map<String, String> usermap = new HashMap<String, String>();
- usermap.put("name", "longflang");
- usermap.put("age", "234");
- modelAndView.addObject("user", usermap);
- modelAndView.setViewName("result");
- return modelAndView;
- }
- @RequestMapping(value="string")
- public String getInfo(Model model){
- //传String
- model.addAttribute("title", "return String:");
- //传Object
- User u = new User("longflang","12");
- model.addAttribute("user", u);
- //传List
- List<User> userlist = new ArrayList<User>();
- userlist.add(new User("longflang1","123"));
- userlist.add(new User("longflang2","345"));
- userlist.add(new User("longflang3","45"));
- model.addAttribute("list", userlist);
- //传Map
- Map<String, String> usermap = new HashMap<String, String>();
- usermap.put("name", "longflang");
- usermap.put("age", "234");
- model.addAttribute("map", usermap);
- return "result";
- }
- @RequestMapping(value="strparam")
- public String getInfo(@RequestParam("name") String name ,@RequestParam("age") String age,Model model){
- //传String
- model.addAttribute("title", "return String: @RequestParam");
- //传Object
- User u = new User(name,age);
- model.addAttribute("user", u);
- //传List
- List<User> userlist = new ArrayList<User>();
- userlist.add(new User(name,age));
- userlist.add(new User(name,age));
- userlist.add(new User(name,age));
- model.addAttribute("list", userlist);
- //传Map
- Map<String, String> usermap = new HashMap<String, String>();
- usermap.put("name", name);
- usermap.put("age", age);
- model.addAttribute("map", usermap);
- return "result";
- }
- @RequestMapping(value="strparam/{name}")
- public String getInfo2(@PathVariable("name") String name ,@RequestParam("age") String age,Model model){
- //传String
- model.addAttribute("title", "return String: @PathVariable");
- //传Object
- User u = new User(name,age);
- model.addAttribute("user", u);
- //传List
- List<User> userlist = new ArrayList<User>();
- userlist.add(new User(name,age));
- userlist.add(new User(name,age));
- userlist.add(new User(name,age));
- model.addAttribute("list", userlist);
- //传Map
- Map<String, String> usermap = new HashMap<String, String>();
- usermap.put("name", name);
- usermap.put("age", age);
- model.addAttribute("map", usermap);
- return "result";
- }
- }
6)定义POJO User.java
- package com.longflang.pojo;
- public class User {
- private String name;
- private String age;
- public User() {
- super();
- // TODO Auto-generated constructor