SpringMVC、SpringMVC XML配置(纯XML方式)
1、引入SrpingMVC所使用的Java包:
cglib-nodep-2.1_3.jar、commons-logging.jar、spring-aspects-4.1.7.RELEASE.jar、spring-beans-4.1.7.RELEASE.jar、spring-context-4.1.7.RELEASE.jar
、spring-core-4.1.7.RELEASE.jar、spring-web-4.1.7.RELEASE.jar、spring-webmvc-4.1.7.RELEASE.jar
2、新建Web项目,配置Web.xml:
<?xml version="1.0" encoding="UTF-8"?>springmvc org.springframework.web.context.ContextLoaderListener CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 CharacterEncodingFilter /* contextConfigLocation /WEB-INF/spring-servlet.xml spring org.springframework.web.servlet.DispatcherServlet 1 spring *.do 
3、配置spring-servlet.xml(基中的部分MVC的配置可另外再分一个bean.xml配置,这里为了方便统一放在一个里面):
userController indexController 
4、新建Model,User:
public class User {
	private Integer id;
	private String name;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
5、新建ServiceBean并实现一个模拟的数据保存添加操作:
public interface UserIService {
	void saveOrUpdate(User user);
	User getUserById(Integer id);
	void delete(Integer id);
	List getUsers();
	Integer getNewId();
}
 public class UserServiceImpl implements UserIService {
	private Map map=new HashMap();
	private Map idCount=new HashMap();
	@Override
	public void saveOrUpdate(User user) {
		map.put(user.getId(), user);
	}
	@Override
	public User getUserById(Integer id) {
		if(map.containsKey(id)){
			return (User)map.get(id);
		}
		return new User();
	}
	@Override
	public void delete(Integer id) {
		map.remove(id);
	}
	@Override
	public List getUsers() {
		List list=new ArrayList();
		for(Integer key : map.keySet()){
			list.add((User)map.get(key));
		}
		return list;
	}
	@Override
	public Integer getNewId() {
		if(!idCount.containsKey("ids")){
			Integer id=1;
			idCount.put("ids", id);
			return id;
		}else{
			Integer id=idCount.get("ids");
			id=id+1;
			idCount.put("ids", id);
			return id;
		}
	}
}       6、新建控制器UserController:
public class UserController implements Controller{
	private UserIService userIService;
	@Override
	public ModelAndView handleRequest(HttpServletRequest req,
			HttpServletResponse res) throws Exception {
		String param="";
		param=req.getParameter("param");
		//新增控制器跳转
		if(param.trim().equals("add")){
			return new ModelAndView("/WEB-INF/userAdd");
		}else if(param.trim().equals("edit")){
			//编辑控制器跳转
			Integer id=-1;
			if(!req.getParameter("userId").trim().equals("")){
				id=Integer.parseInt(req.getParameter("userId").trim());
			}
			User user=userIService.getUserById(id);
			req.setAttribute("user", user);
			return new ModelAndView("/WEB-INF/userAdd");
		}else if(param.trim().equals("userList")){
			//列表页面跳转
			List list=userIService.getUsers();
			req.setAttribute("userList", list);
			return new ModelAndView("/WEB-INF/userList");
		}else if(param.trim().equals("save")){
			//新增的保存操作
			User user=new User();
			String name=req.getParameter("name").trim();
			user.setId(userIService.getNewId());
			user.setName(name);
			userIService.saveOrUpdate(user);
			List list=userIService.getUsers();
			req.setAttribute("userList", list);
			return new ModelAndView("/WEB-INF/userList");
		}else if(param.trim().equals("update")){
			//修改的保存操作
			Integer id=-1;
			if(!req.getParameter("userId").trim().equals("")){
				id=Integer.parseInt(req.getParameter("userId").trim());
			}
			String name=req.getParameter("name").trim();
			User user=userIService.getUserById(id);
			user.setName(name);
			userIService.saveOrUpdate(user);
			List list=userIService.getUsers();
			req.setAttribute("userList", list);
			return new ModelAndView("/WEB-INF/userList");
		}else if(param.trim().equals("delete")){
			//删除操作
			Integer id=-1;
			if(!req.getParameter("userId").trim().equals("")){
				id=Integer.parseInt(req.getParameter("userId").trim());
			}
			userIService.delete(id);
			List list=userIService.getUsers();
			req.setAttribute("userList", list);
			return new ModelAndView("/WEB-INF/userList");
		}else if(param.trim().equals("detail")){
			//详细用户页面
			Integer id=-1;
			if(!req.getParameter("userId").trim().equals("")){
				id=Integer.parseInt(req.getParameter("userId").trim());
				User user=userIService.getUserById(id);
				req.setAttribute("user", user);
			}
			return new ModelAndView("/WEB-INF/userDetail");
		}else if(param.trim().equals("list")){
			// list列表
			List list=userIService.getUsers();
			req.setAttribute("userList", list);
			return new ModelAndView("/WEB-INF/userList");
		}
		return new ModelAndView("fail");
		//return forword("stu/studentList", context);  //同样也可以使用forword进行页面跳转
		//使用Map向前台输出数据时,获取操作同Request一样,可以在前台使用${名字}来获取如下例,可以使用${message}获取
		//Map resultMap = new HashMap();  
        //resultMap.put("message", "欢迎来到首页111");  
		//return new ModelAndView("index",resultMap);
	}
	public UserIService getUserIService() {
		return userIService;
	}
	public void setUserIService(UserIService userIService) {
		this.userIService = userIService;
	}
}       7、然后就是页面啦:
新增页面:
用户列表新增用户
访问地址:http://localhost/user.do?param=add
修改页面也是此页面,访问地焉http://localhost/user.do?param=edit&userId=12
用户信息页面:
用户列表用户详细信息:
- ID:${user.id }
 - 用户名:${user.name }
 
用户列表页面:
新增用户用户列表:
| ID | 姓名 | 操作 | 
| ${user.id } | ${user.name } | 修改 | 
下图是效果图:
其他的SpringMVC文档:
http://liudeh-009.iteye.com/blog/1267880
http://jinnianshilongnian.iteye.com/blog/1594806
http://www.importnew.com/15141.html
Spring各个版本下载:
http://repo.spring.io/release/org/springframework/spring/