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:
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配置,这里为了方便统一放在一个里面):
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
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 } | 修改 |
下图是效果图: