Spring MVC之用户管理一
来源:互联网 发布:div调用js方法 编辑:程序博客网 时间:2024/05/19 20:56
Spring MVC之用户管理
余志勇
SINA微博:http://weibo.com/web8i
QQ微博:http://t.qq.com/webiiiiiiii
博客:http://blog.csdn.net/web8i
本文在上篇【Spring MVC之HelloWorld】的基础上开发一个简单的CRUD应用,为了减少非Spring MVC相关知识,本应用没有使用数据库而是直接把数据存入内存中。当然这也不是本文的重点。
目标:如下图完成用户的增删改查功能。
工具:MyEclipse 8.6(也可以选择任何其它IDE工具,本系列文章尽量不使用工具特有的东东)
主要任务:
工程:
userdemo Web项目(新增)
视图:
index.jsp(新增)
user_add.jsp(新增)
user_edit.jsp(新增)
user_list.jsp(新增)
控制器:
UserController.java(新增)重点
模型:
UserService.java
User.java
配置:
web.xml(如上文)
spring_servlet.xml(如上文)
项目结构如下图:
参考代码:
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <body> <a href="user/list.html">UserManager</a> <br> </body></html>
user_list.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html><body><h2>User Manager</h2><hr /><table border="1" width="80%"> <tr> <td>ID</td> <td>User Name</td> <td>Password</td> <td>Email</td> <td>COMMAND</td> </tr> <c:forEach items="${userList}" var="user"> <tr> <td>${user.id}</td> <td>${user.userName}</td> <td>${user.password}</td> <td>${user.email}</td> <td> <a href="${user.id}/edit.html">Edit</a>| <a href="add.html">Add</a>| <a href="${user.id}/remove.html">Remove</a> </td> </tr> </c:forEach></table> </body></html>
user_add.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%><html><body><h2>User Manager</h2><form:form method="post" action="save.html"> <table> <tr> <td><form:label path="id">ID</form:label></td> <td><form:input path="id" /></td> </tr> <tr> <td><form:label path="userName">UserName</form:label></td> <td><form:input path="userName" /></td> </tr> <tr> <td><form:label path="password">Password</form:label></td> <td><form:password path="password" /></td> </tr> <tr> <td><form:label path="email">Email</form:label></td> <td><form:input path="email" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Add User"/> </td> </tr></table> </form:form><a href="list.html">Go</a></body></html>
user_edit.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%><html><body><h2>User Manager</h2><form:form method="post" action="update.html"> <table> <form:hidden path="id" /> <tr> <td><form:label path="userName">UserName</form:label></td> <td><form:input path="userName" /></td> </tr> <tr> <td><form:label path="password">Password</form:label></td> <td><form:password path="password" /></td> </tr> <tr> <td><form:label path="email">Email</form:label></td> <td><form:input path="email" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Update User"/> </td> </tr></table> </form:form><a href="list.html">Go</a></body></html>
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>HelloWorld</display-name><servlet><display-name>spring</display-name><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>
spring_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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 自动扫描的包名 --> <context:component-scan base-package="org.web8i.controller,org.web8i.service"/> <!-- 视图解释类 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" > <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/view/jsp/" /> <property name="suffix" value=".jsp" /><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 --> </bean> </beans>
UserController.java
package org.web8i.controller;import java.util.ArrayList;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import org.web8i.model.User;import org.web8i.service.UserService;@Controllerpublic class UserController {@Autowired(required=true)private UserService userService;//用户列表界面@RequestMapping(value="/user/list")public ModelAndView listUsers(){List<User> userList = new ArrayList<User>();userList = userService.getUserList();/**ModelAndView构造函数3个参数中,参数1表示返回的视图名即相应的JSP,这里会 * 这里是/WEB-INF/view/jsp/user_list.jsp,为什么呢?请参考 * spring_servlet.xml文件中的viewResolver的配置;参数2表示放入模型中 * 属性的名字;参数3表示模型中对应属性的值。 */return new ModelAndView("user_list","userList",userList);}//新增界面@RequestMapping(value="/user/add")public ModelAndView addUser(User user){return new ModelAndView("user_add","command",user);//command是系统默认的模型属性名}//新增保存功能 @RequestMapping(value="/user/save")public String saveUser(User user){userService.addUser(user);return "redirect:list.html";}//修改界面@RequestMapping(value="/user/{userId}/edit")public ModelAndView editUser(@PathVariable("userId") int userId){User user = userService.getUserById(userId);return new ModelAndView("user_edit","command",user);}//修改保存功能@RequestMapping(value="/user/{userId}/update")public String updateUser(User user){userService.updateUser(user);return "redirect:../list.html";}//删除功能@RequestMapping(value="/user/{userId}/remove")public String removeUser(@PathVariable("userId") int userId){userService.removeUser(userId);return "redirect:../list.html";}}
UserService.java
package org.web8i.service;import java.util.ArrayList;import java.util.List;import org.springframework.stereotype.Service;import org.web8i.model.User;@Servicepublic class UserService {static List<User> userList = new ArrayList<User>();static{User u1 = new User();u1.setId(1);u1.setUserName("David");u1.setPassword("123456");u1.setEmail("david@web8i.org");userList.add(u1);User u2 = new User();u2.setId(2);u2.setUserName("Naivee");u2.setPassword("123456");u2.setEmail("naivee@web8i.org");userList.add(u2);User u3 = new User();u3.setId(3);u3.setUserName("Mike");u3.setPassword("123456");u3.setEmail("mike@web8i.org");userList.add(u3);}public List<User> getUserList(){return userList;}public User getUserById(int userId){for(User u : userList){if(u.getId() == userId){return u;}}return null;}public void addUser(User user){userList.add(user);}public void updateUser(User user){int index = -1;for(User u : userList){if(u.getId() == user.getId()) index++;}userList.set(index, user);}public void removeUser(int userId){userList.remove(this.getUserById(userId));}}
User.java
package org.web8i.model;public class User {private int id;private String userName;private String password;private String email;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}
- Spring MVC之用户管理一
- spring MVC 之controller (一)
- Spring+Spring MVC+JDBCTemplate实现简单的用户管理功能
- Spring MVC之LocaleResolver(解析用户区域)
- Spring MVC之LocaleResolver(解析用户区域)
- Spring MVC之LocaleResolver(解析用户区域)
- Spring MVC之LocaleResolver(解析用户区域)
- 权限管理之Shiro+Spring MVC整合
- Spring mvc系列一之 Spring mvc简单配置
- Spring mvc系列一之 Spring mvc简单配置
- 项目构建之maven篇:8.maven发布web工程及基于spring mvc,jetty实现的用户管理demo
- YII MVC之用户注册和用户登录(一)
- Java 开发之Spring MVC(一)
- 调戏源码之Spring MVC(一)
- Spring MVc入门之环境搭建(一)
- 用户管理系统网站框架改进之MVC模式
- MVC设计模式之简单用户管理系统
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
- Apache Avro简介
- AJAX调用方式总结(2)
- Linux下使用system()函数一定要谨慎
- AJAX调用方式总结(3)
- ldv-kernelRule: ERR.aspect定义对内核指针错误处理函数的重构
- Spring MVC之用户管理一
- New Ogre binding for Noesis GUI available
- IBM Rational Team Concert
- 揭秘webdriver实现原理
- AJAX调用方式总结(4)
- [我要考试]计算机体系结构_威斯康星_博士资格考试_Spring1988_Q2_Cache地址
- vimdiff的用法
- 什么是级联
- 从SQL Server 2000/2005到SQL Server 2008的升级测试