springmvc 实例应用
springmvc 应用实例
今天学习,网上好多实例,好多照着坐下来都报错,找了好多资料,总算是搞出来了,方面以后更多的人学习,这里贴出全部代码.与同仁共同交流.
项目结构图:
应用实体
package com.icreate.entity;import java.io.Serializable;/*** ** @version : 1.0* * @author : 苏若年 <a href="mailto:DennisIT@163.com">发送邮件</a>* * @since : 1.0 创建时间: 2013-4-9 上午11:15:50* * @function: TODO **/public class User implements Serializable{private int id;private String username;private String password;private int sex; //1表示男 0表示女private String email;//getter() and setter ()public String toString(){return this.id + "\t" + this.username + "\t" + this.password + "\t" + this.sex + "\t" + this.email;} }
数据dao接口定义
package com.icreate.dao;import java.util.List;import com.icreate.entity.User;/*** ** @version : 1.0* * @author : 苏若年 <a href="mailto:DennisIT@163.com">发送邮件</a>* * @since : 1.0 创建时间: 2013-4-9 上午11:15:50* * @function: TODO **/public interface UserDao {public int insert(User user);public int delete(User user);public int countAll();public List<User> selectAll();public int update(User user);public User detail(int id); }
Dao实现,由于模拟所以,这里数据用虚拟数据,并非从数据库中读到的数据,模块功能类似,这里只实现查询模块模拟
package com.icreate.dao.impl;import java.util.ArrayList; import java.util.List; import java.util.UUID;import org.springframework.stereotype.Repository;import com.icreate.dao.UserDao; import com.icreate.entity.User;/*** ** @version : 1.0* * @author : 苏若年 <a href="mailto:DennisIT@163.com">发送邮件</a>* * @since : 1.0 创建时间: 2013-4-9 上午11:15:50* * @function: TODO **/@Repository public class UserDaoImpl implements UserDao{public int countAll() {// TODO Auto-generated method stubreturn 0;}public int delete(User user) {// TODO Auto-generated method stubreturn 0;}public int insert(User user) {// TODO Auto-generated method stubreturn 0;}public List<User> selectAll() {List<User> list = new ArrayList<User>();for(int i=0; i<5; i++){User user = new User();user.setId(i);user.setUsername(UUID.randomUUID().toString().substring(0,8));user.setPassword(UUID.randomUUID().toString().substring(0,15));user.setSex(i%2);user.setEmail(UUID.randomUUID().toString().substring(0,8)+"@163.com");list.add(user);}return list;}public int update(User user) {// TODO Auto-generated method stubreturn 0;}public User detail(int id) {// TODO Auto-generated method stubreturn null;}}
业务service接口定义
package com.icreate.service;import java.util.List;import com.icreate.entity.User;/*** ** @version : 1.0* * @author : 苏若年 <a href="mailto:DennisIT@163.com">发送邮件</a>* * @since : 1.0 创建时间: 2013-4-9 上午11:15:50* * @function: TODO **/public interface UserService {public int insert(User user);public int delete(User user);public int countAll();public List<User> selectAll();public int update(User user);public User detail(int id);}
业务service实现
package com.icreate.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import com.icreate.dao.UserDao; import com.icreate.entity.User; import com.icreate.service.UserService;/*** ** @version : 1.0* * @author : 苏若年 <a href="mailto:DennisIT@163.com">发送邮件</a>* * @since : 1.0 创建时间: 2013-4-9 上午11:15:50* * @function: TODO **/@Service public class UserServiceImpl implements UserService{@Autowired(required = true)private UserDao userDao;public int countAll() {return this.userDao.countAll();}public int delete(User user) {return this.userDao.delete(user);}public int insert(User user) {return this.userDao.insert(user);}public List<User> selectAll() {return this.userDao.selectAll();}public int update(User user) {return this.userDao.update(user);}public User detail(int id) {return this.userDao.detail(id);}}
业务模块相关类就这么点
下面是Springmvc的控制器应用类
package com.icreate.controller;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping;import com.icreate.entity.User; import com.icreate.service.UserService;/*** ** @version : 1.0* * @author : 苏若年 <a href="mailto:DennisIT@163.com">发送邮件</a>* * @since : 1.0 创建时间: 2013-4-9 上午11:15:50* * @function: TODO **/@Controller @RequestMapping(value = "/user") public class UserController {@Autowired(required = true)private UserService userService;//@RequestMapping("/user.do")是说明这个方法处理user.do这个请求@RequestMapping(value="/insert.do")public String insert(ModelMap modelMap, User user){return "";}@RequestMapping(value="/list.do")public String list(ModelMap modelMap){modelMap.put("users", this.userService.selectAll());System.out.println("控制器将执行结果转发给试图/注意转发试图结果同dispatcher-servlet.xml对比");return "userlist";} }
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"><!-- 配置Spring上线文 --><context-param> <param-name>contextConfigLocation</param-name> <!-- 如果放在/WEB-INF/目录下则值应该为:/WEB-INF/applicationContext.xml --><param-value>classpath:applicationContext.xml</param-value> </context-param> <!--Spring的ApplicationContext 载入 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><!-- Spring 刷新Introspector防止内存泄露 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <!-- 配置log4j<context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:log4j.properties</param-value></context-param>--><!-- Spring的log4j监听器 --><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><!--配置Sring MVC的核心控制器DispatcherServlet Spring view分发器--> <servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!-- 如果放在/WEB-INF/目录下则值应该为:/WEB-INF/dispatcher-servlet.xml --><param-value>classpath:dispatcher-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!--为DispatcherServlet建立映射 --><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!-- session超时定义,单位为分钟 --> <session-config> <session-timeout>20</session-timeout> </session-config> <!-- 出错页面定义 --> <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/common/500.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/common/500.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/common/404.jsp</location> </error-page> <error-page> <error-code>403</error-code> <location>/common/403.jsp</location> </error-page> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>
applicationContext.xml内容
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><context:annotation-config /><context:component-scan base-package="com.icreate" /> <!-- 自动扫描所有注解该路径 --><bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/><!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /><bean id="userDao" class="com.icreate.dao.impl.UserDaoImpl" /><bean id="userService" class="com.icreate.service.impl.UserServiceImpl" /> </beans>
dispatcher-servlet.xml内容
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><mvc:annotation-driven /><context:component-scan base-package="com.icreate.controller" /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/view/" /><property name="suffix" value=".jsp" /></bean></beans>
index.jsp中进行事物请求
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><jsp:forward page="${basePath}/user/list.do"></jsp:forward>
dispatcher-servlet.xml中我们配置的试图界面为/WEB-INF/view/下,后缀为.jsp文件
所以我们的userlist.jsp中jsp文件的名字一定要与 UserController 类中
@RequestMapping(value="/list.do")public String list(ModelMap modelMap){modelMap.put("users", this.userService.selectAll());System.out.println("控制器将执行结果转发给试图/注意转发试图结果同dispatcher-servlet.xml对比");return "userlist";}
方法的返回值一致.这样才能查找到对应的试图页面.
/WEB-INF/view/下的userlist.jsp中核心内容如下,因为我们在控制器中将执行结果数据放入到ModelMap中,所以试图中直接取出该数据显示即可注意items=${users}大括号中的值要跟modelMap中存放的键值对中的键名称一致,同为users
modelMap.put("users", this.userService.selectAll());
<c:forEach items="${users}" var="user" varStatus="status"><tr><!-- ${status.index+1}编号 --><td><c:out value="${user.id}" /></td><td><c:out value="${user.username}" /></td><td><c:out value="${user.password}" /></td><td><c:if test="${user.sex == 1}"><c:out value="男" /></c:if> <c:if test="${user.sex == 0}"><c:out value="女" /></c:if></td><td><c:out value="${user.email}" /></td><td><a href="/user/detail/${user.id}">detail</a> |<a href="/user/toupdate/${user.id}">update</a> |<a href="/user/delete/${user.id}">delete</a></td></tr></c:forEach>
访问URL:http://localhost:8080/springmvc/ (springmvc是我建立的项目名称)
程序运行结果:
附录:
应用所需jar包
转载请注明出处:[http://www.cnblogs.com/dennisit/archive/2013/04/10/3012993.html]
转载于:https://www.cnblogs.com/dennisit/archive/2013/04/10/3012993.html
springmvc 实例应用相关推荐
- SpringMVC 实例 --非注解【过时的,留作回忆】
练习项目:test SpringMVC 实例 --非注解,只用于学习理解.到了spring 3.0以后或许部分东西已经过时了,在实际工作中并不一定好用. 但对于理解SpringMVC的实现方式很有帮助 ...
- SpringMVC 实例应用 -- 不同方式控制器实现与参数传递
添加spring相关包,笔者用最新包3.2.2,可以去官方下载最新包http://www.springsource.org/spring-community-download 模块说明,注释在代码中, ...
- 基于Servlet3.0的编程式SpringMVC实例详解
传统的SpringMVC应用都是基于web.xml配置的,首先使用context listener启动Spring上下文,再配置一个DispatcherServlet启动一个WebApplicatio ...
- SpringMVC实例之RESTful风格进行CRUD实例(学习笔记)
根据:springMVC工作原理 一. 添加所有员工信息 显示添加页面 URL:Add 请求方式:GET jsp页面 添加请求方式:POST 显示效果:完成添加,重定向到 list 页 二.展示所有员 ...
- SpringMVC实例应用
Spring MVC 框架搭建及详解 您的评价: 收藏该经验 现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架 ...
- SpringMVC基础及应用-李守红
2019独角兽企业重金招聘Python工程师标准>>> 本文视频观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.h ...
- 李守红java_SpringMVC基础及应用-李守红
本文视频观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1141 视频大纲 ³SpringMVC简介和 ...
- 返回ajax有几种方式,java ajax返回 Json 的 几种方式
方式 1. : 自写代码转 Json 需要 HttpHttpServletRequest request HttpServletResponse response 后台 : @RequestMap ...
- SSM实现文件的上传和下载
目录(?)[+] 林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文 ...
最新文章
- scipy.sparse.coo_matrix、csr_matrix、lil_matrix、dia_matrix
- 刚子扯谈:谢谢你 要学会尊重文字 即使它写的很狗屎
- 关于Euclid算法
- centos7.3安装MongoDB
- 一位 83 岁独立开发者教会我的道理
- 小心ASP.NET 2.0 的Skin特性伤害到您!
- 四、spring中高级装配(2)
- 请求参数绑定实体类型
- kotlin键值对数组_Kotlin程序检查数组是否包含给定值
- (软件工程复习核心重点)第三章需求分析-第一节:需求分析相关概念
- yii2 controller 接收get形式传输过来的参数
- 笔记本cpu排名_2020年双十一哪一款笔记本电脑值得买?高性价比笔记本电脑推荐(10月更新)...
- Linux 下安装杀毒软件 clamav
- linux下安装yum步骤
- 随机森林模型解释_随机森林解释
- 细说php精要版 百度云,细说php精要版
- c语言 大写字母转换为小写字母后的第五个,将大写字母转换为对应小写字母之后的第5字母;若小写字母为v~z,使小写字母的值减21。...
- TTL与RS-232电平转换芯片MAX232/MAX3232
- vs2010专业板产品密钥
- HERO2009 午夜骚魂