springmvc 应用实例
今天学习,网上好多实例,好多照着坐下来都报错,找了好多资料,总算是搞出来了,方面以后更多的人学习,这里贴出全部代码.与同仁共同交流.

项目结构图:

应用实体

View Code

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接口定义

View Code

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 实例应用相关推荐

  1. SpringMVC 实例 --非注解【过时的,留作回忆】

    练习项目:test SpringMVC 实例 --非注解,只用于学习理解.到了spring 3.0以后或许部分东西已经过时了,在实际工作中并不一定好用. 但对于理解SpringMVC的实现方式很有帮助 ...

  2. SpringMVC 实例应用 -- 不同方式控制器实现与参数传递

    添加spring相关包,笔者用最新包3.2.2,可以去官方下载最新包http://www.springsource.org/spring-community-download 模块说明,注释在代码中, ...

  3. 基于Servlet3.0的编程式SpringMVC实例详解

    传统的SpringMVC应用都是基于web.xml配置的,首先使用context listener启动Spring上下文,再配置一个DispatcherServlet启动一个WebApplicatio ...

  4. SpringMVC实例之RESTful风格进行CRUD实例(学习笔记)

    根据:springMVC工作原理 一. 添加所有员工信息 显示添加页面 URL:Add 请求方式:GET jsp页面 添加请求方式:POST 显示效果:完成添加,重定向到 list 页 二.展示所有员 ...

  5. SpringMVC实例应用

    Spring MVC 框架搭建及详解 您的评价: 收藏该经验    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架 ...

  6. SpringMVC基础及应用-李守红

    2019独角兽企业重金招聘Python工程师标准>>> 本文视频观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.h ...

  7. 李守红java_SpringMVC基础及应用-李守红

    本文视频观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1141 视频大纲 ³SpringMVC简介和 ...

  8. 返回ajax有几种方式,java ajax返回 Json 的 几种方式

    方式 1. : 自写代码转 Json 需要  HttpHttpServletRequest request  HttpServletResponse response 后台 : @RequestMap ...

  9. SSM实现文件的上传和下载

    目录(?)[+] 林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文 ...

最新文章

  1. scipy.sparse.coo_matrix、csr_matrix、lil_matrix、dia_matrix
  2. 刚子扯谈:谢谢你 要学会尊重文字 即使它写的很狗屎
  3. 关于Euclid算法
  4. centos7.3安装MongoDB
  5. 一位 83 岁独立开发者教会我的道理
  6. 小心ASP.NET 2.0 的Skin特性伤害到您!
  7. 四、spring中高级装配(2)
  8. 请求参数绑定实体类型
  9. kotlin键值对数组_Kotlin程序检查数组是否包含给定值
  10. (软件工程复习核心重点)第三章需求分析-第一节:需求分析相关概念
  11. yii2 controller 接收get形式传输过来的参数
  12. 笔记本cpu排名_2020年双十一哪一款笔记本电脑值得买?高性价比笔记本电脑推荐(10月更新)...
  13. Linux 下安装杀毒软件 clamav
  14. linux下安装yum步骤
  15. 随机森林模型解释_随机森林解释
  16. 细说php精要版 百度云,细说php精要版
  17. c语言 大写字母转换为小写字母后的第五个,将大写字母转换为对应小写字母之后的第5字母;若小写字母为v~z,使小写字母的值减21。...
  18. TTL与RS-232电平转换芯片MAX232/MAX3232
  19. vs2010专业板产品密钥
  20. HERO2009 午夜骚魂

热门文章

  1. 分支合并 Fork-Join 框架
  2. 2018百度之星程序设计大赛 - 资格赛 hdu6345(找区间最小值)
  3. Java小结(二)——打印矩形和九九乘法表
  4. 字符在计算机中是如何表示的?
  5. 去中心化钱包CoinU诞生 黑客攻不破的铜墙铁壁
  6. 【译】A Practical Introduction to Blockchain with Python
  7. 深度学习指南:在iOS平台上使用TensorFlow
  8. Android系统中的进程管理:进程的创建
  9. Endnote X3 出现中文乱码
  10. 提高效率的几个软件和快捷键