基于SSM框架的简易的分页功能——包含maven项目的搭建
新人第一次发帖,有什么不对的地方请多多指教~~
分页这个功能经常会被使用到,我之前学习的时候找了很多资源,可都看不懂(笨死算了),最后还是在朋友帮助下做出了这个分页。我现在把我所能想到的知识
做了一个整理发上来,供大家参考参考,希望能帮助到一些和我一样的人吧@.@ 中间肯定有很多没有表述明白,请多多见谅,博主刚刚结束java 四个月,小白一只,
还望海涵~~~
前面八步为项目准备工作,如果maven项目搭建完成的可以跳过~
最后面有附件,是完整的一个工程,包含数据库的呦
首先需要一个IDEA!
我使用的是ideaIU-2016.2 下载地址:http://www.jetbrains.com/idea/download/#section=windows
IDEA常用配置:http://blog.csdn.net/yelove1990/article/details/51541327
然后创建一个maven项目
一、Create New Project 创建项目
二、选择maven项目并按指示创建
三、GroupId是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
ArtifactId是项目唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
一般GroupId就是填xxx.xx.xxx类似这样的。
四、这里需要添加一条参数,Name是划线左边的名称,value是划线右边的值,相应的填写进去就行,然后点OK-Next
五、创建工程,工程名为前面的ArtifactId
六、然后IDEA就会自动创建项目
创建完成会有BUILD SUCCESS的字样提示,表示创建成功。
七、目录结构like this
八、添加maven依赖太多了,不一一解释了,教程网址:http://www.yiibai.com/maven/
直接复制粘贴到自己的maven中即可。
maven依赖的下载地址:http://mvnrepository.com/
<properties>
<!-- 核心框架的版本设置 -->
<spring.version>4.2.5.RELEASE</spring.version>
<maven.build.timestamp.format>yyyyMMdd</maven.build.timestamp.format>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<downloadSources>true</downloadSources>
</properties> <dependencies>
<!--common start -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency> <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency> <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency> <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency> <dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency> <dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.8</version>
</dependency> <dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<!--common end --> <!--spring start -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring end --> <!--springmvc 控制层 start -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency> <dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<!--springmvc end --> <!--mybatis 数据访问层 start -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
<scope>runtime</scope>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.20</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.0</version>
</dependency> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency> <dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.6.4.RELEASE</version>
</dependency> <dependency>
<groupId>com.dyuproject.protostuff</groupId>
<artifactId>protostuff-core</artifactId>
<version>1.0.8</version>
</dependency> <dependency>
<groupId>com.dyuproject.protostuff</groupId>
<artifactId>protostuff-runtime</artifactId>
<version>1.0.8</version>
</dependency>
<!--mybatis 数据访问层 end --> <!--Commons DBCP 1.4 start-->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!--Commons DBCP 1.4 end--> <dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-core</artifactId>
<version>1.0.6</version>
</dependency>
</dependencies>
maven
九、配置tomcat,教程地址如下:
来自于:chenshun123的博客
网址:http://blog.csdn.net/chenshun123/article/details/51285890
—————————————————————————————————分割线————————————————————————————————————————
接下来是正文部分!
首先需要一个分页工具类(Page),和实体类(Record),包装类(seeRecord)。中间内容基本不需要改动,您可以根据需要改动每页显示的记录条数。
package po; import java.io.Serializable; public class Page implements Serializable{ private static final long serialVersionUID = -3198048449643774660L; private int pageNow = 1; // 当前页数 private int pageSize = 5; // 每页显示记录的条数 private int totalCount; // 总的记录条数 private int totalPageCount; // 总的页数 @SuppressWarnings("unused")
private int startPos; // 开始位置,从0开始 @SuppressWarnings("unused")
private boolean hasFirst;// 是否有首页 @SuppressWarnings("unused")
private boolean hasPre;// 是否有前一页 @SuppressWarnings("unused")
private boolean hasNext;// 是否有下一页 @SuppressWarnings("unused")
private boolean hasLast;// 是否有最后一页 /**
* 通过构造函数 传入 总记录数 和 当前页
* @param totalCount
* @param pageNow
*/
public Page(int totalCount, int pageNow) {
this.totalCount = totalCount;
this.pageNow = pageNow;
} /**
* 取得总页数,总页数=总记录数/总页数
* @return
*/
public int getTotalPageCount() {
totalPageCount = getTotalCount() / getPageSize();
return (totalCount % pageSize == 0) ? totalPageCount
: totalPageCount + 1;
} public void setTotalPageCount(int totalPageCount) {
this.totalPageCount = totalPageCount;
} public int getPageNow() {
return pageNow;
} public void setPageNow(int pageNow) {
this.pageNow = pageNow;
} public int getPageSize() {
return pageSize;
} public void setPageSize(int pageSize) {
this.pageSize = pageSize;
} public int getTotalCount() {
return totalCount;
} public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
/**
* 取得选择记录的初始位置
* @return
*/
public int getStartPos() {
return (pageNow - 1) * pageSize;
} public void setStartPos(int startPos) {
this.startPos = startPos;
} /**
* 是否是第一页
* @return
*/
public boolean isHasFirst() {
return (pageNow == 1) ? false : true;
} public void setHasFirst(boolean hasFirst) {
this.hasFirst = hasFirst;
}
/**
* 是否有首页
* @return
*/
public boolean isHasPre() {
// 如果有首页就有前一页,因为有首页就不是第一页
return isHasFirst() ? true : false;
} public void setHasPre(boolean hasPre) {
this.hasPre = hasPre;
}
/**
* 是否有下一页
* @return
*/
public boolean isHasNext() {
// 如果有尾页就有下一页,因为有尾页表明不是最后一页
return isHasLast() ? true : false;
} public void setHasNext(boolean hasNext) {
this.hasNext = hasNext;
}
/**
* 是否有尾页
* @return
*/
public boolean isHasLast() {
// 如果不是最后一页就有尾页
return (pageNow == getTotalCount()) ? false : true;
} public void setHasLast(boolean hasLast) {
this.hasLast = hasLast;
} }
page工具类
package po; public class SeeRecord { /*当前登录的用户名*/
private String loginName; /*分页对象*/
private Page page; public String getLoginName() {
return loginName;
} public void setLoginName(String loginName) {
this.loginName = loginName;
} public Page getPage() {
return page;
} public void setPage(Page page) {
this.page = page;
}
}
seeRecord
package po; public class Record {
private int nub;
private String username;
private String loginName;
private String days;
private String business;
private String note; public int getNub() {
return nub;
} public void setNub(int nub) {
this.nub = nub;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getLoginName() {
return loginName;
} public void setLoginName(String loginName) {
this.loginName = loginName;
} public String getDays() {
return days;
} public void setDays(String days) {
this.days = days;
} public String getBusiness() {
return business;
} public void setBusiness(String business) {
this.business = business;
} public String getNote() {
return note;
} public void setNote(String note) {
this.note = note;
}
}
Record
然后编写Mybatis的Recordmapper.xml配置文件,编写sql语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="ssm.dao.RecordDao" ><!--对应相应的DAO接口-->
<!--查询操作记录-->
<select id="queryAllRecord" parameterType="ssm.po.SeeRecord" resultType="ssm.po.Record">
SELECT * FROM record WHERE loginName = #{loginName} limit #{page.startPos},#{page.pageSize}<!--startPos开始页 , pageSize每页显示的记录条数-->
</select> <!--查询总记录条数-->
<select id="getCount" resultType="int" parameterType="String">
select count(*) from record where loginName = #{value}
</select>
</mapper>
接下来编写Dao接口(RecordDao)
package Dao; import org.springframework.stereotype.Repository;
import po.Record;
import po.SeeRecord;
import java.util.List; @Repository
public interface RecordDao {
/*取得操作记录*/
List<Record> queryAllRecord(SeeRecord seeRecord); /*取得记录条数信息,通过当前用户的loginName查询*/
int getCount(String loginName);
}
接口编写完成后需要慌里面传值,此时就需要编写Controller。
先获取到当前页和用户名,然后调用DAO接口查询数据库,获得总记录条数,把总记录条数和当前页传入到page的构造方法中,page工具类会根据传入的参数,算出共几页。然后查出当前用户的所有操作记录,存到recordList中并返回给页面,页面就可以显示了。
package controller; import Dao.RecordDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import po.Page;
import po.Record;
import po.SeeRecord; import javax.servlet.http.HttpServletRequest;
import java.util.List; @Controller
public class RecordController { @Autowired
private RecordDao recordDao; /*查看操作记录*/
@RequestMapping("/queryAll")
public String record(String loginName , Model model, SeeRecord seeRecord, String pageNow){
String user_Name;
Page page = null;//new 对象在下面
user_Name = loginName;//获取当前登录的用户的loginName
int totalCount = recordDao.getCount(user_Name);//获取当前用户总记录条数
if(pageNow != null && pageNow != "") {//防止出现空指针异常
int pageNow1 = Integer.parseInt(pageNow);
page = new Page(totalCount, pageNow1);//这样写的好处,判断完成外面可以继续调用
}
seeRecord.setLoginName(user_Name);
seeRecord.setPage(page);
List<Record> recordList = recordDao.queryAllRecord(seeRecord);//取得当前用户的所有操作记录
model.addAttribute("page",page);
model.addAttribute("recordList",recordList);
return "recordPage";
}
}
编写jsp页面接收并显示。
由于测试需要,我加了一个跳转页面。向Controller中传入了两个值,pageNow和loginName,表示当前登录的用户和当前的页数。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用于跳转到分页页面</title>
</head>
<body>
<form action="/queryAll?pageNow=1&loginName='ceshiyong01'" method="post">
<input type="submit" value="查看操作记录" style="width: 100px; height: 30px;"/>
</form>
</body>
</html>
分页功能显示页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html>
<head>
<title>操作记录</title>
<style type="text/css">
body{
margin: 0px;
padding: 0px;
}
table{
width: 100%;
height: 400px;
border: #000 1px solid;
}
tr td{
height: 40px;
text-align: center;
border: #000 1px solid;
} </style>
</head>
<body>
<div style="width:100px; height: 30px; margin: 10px auto;line-height: 30px;">
<strong><font style="size:36px;">操作记录</font></strong>
</div>
<table>
<tr>
<td width="70px">流水号</td>
<td width="90px">姓名</td>
<td width="120px">用户名</td>
<td width="200px">操作日期</td>
<td width="250px">操作记录</td>
<td width="80px">操作方式</td>
</tr>
<!--循环遍历所有得到的记录并输出-->
<c:forEach items="${recordList}" var="record">
<tr>
<td width="70px">${record.nub}</td>
<td width="90px">${record.username}</td>
<td width="120px">${record.loginName}</td>
<td width="200px">${record.days}</td>
<td width="250px">${record.business}</td>
<td width="80px">${record.note}</td>
</tr>
</c:forEach>
<tr>
<td colspan="6">
<!-- 分页功能 start -->
<div align="center">
<font size="2">共 ${page.totalPageCount} 页</font> <font size="2">第
${page.pageNow} 页</font> <a href="${pageContext.request.contextPath}/queryAll?pageNow=1">首页</a>
<c:choose>
<c:when test="${page.pageNow - 1 > 0}">
<a href="${pageContext.request.contextPath}/queryAll?pageNow=${page.pageNow - 1}">上一页</a>
</c:when>
<c:when test="${page.pageNow - 1 <= 0}">
<a href="${pageContext.request.contextPath}/queryAll?pageNow=1">上一页</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${page.totalPageCount==0}">
<a href="${pageContext.request.contextPath}/queryAll?pageNow=${page.pageNow}">下一页</a>
</c:when>
<c:when test="${page.pageNow + 1 < page.totalPageCount}">
<a href="${pageContext.request.contextPath}/queryAll?pageNow=${page.pageNow + 1}">下一页</a>
</c:when>
<c:when test="${page.pageNow + 1 >= page.totalPageCount}">
<a href="${pageContext.request.contextPath}/queryAll?pageNow=${page.totalPageCount}">下一页</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${page.totalPageCount==0}">
<a href="${pageContext.request.contextPath}/queryAll?pageNow=${page.pageNow}">尾页</a>
</c:when>
<c:otherwise>
<a href="${pageContext.request.contextPath}/queryAll?pageNow=${page.totalPageCount}">尾页</a>
</c:otherwise>
</c:choose>
</div>
<!-- 分页功能 End -->
</td>
</tr>
</table>
</body>
</html>
—————————————————————————————分割线2号———————————————————————————————————————————
最后配置XML文件:
db.properties:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/pagedemo?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
log4j.properties:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
spring-mvc.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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--自动扫描 @ssm.com.imarce.pageDemo.controller-->
<context:component-scan base-package="com.imarce.pageDemo.controller"/> <!-- 启动对@AspectJ注解的支持 -->
<aop:aspectj-autoproxy proxy-target-class="true" /> <!--定义跳转的文件的前后缀,视图模式设置-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value=""/>
<property name="suffix" value=".jsp"/>
</bean> <mvc:annotation-driven>
<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<!-- 将Jackson2HttpMessageConverter的默认格式化输出为false -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list><value>application/json;charset=UTF-8</value></list>
</property>
<property name="prettyPrint" value="false"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven> <!--静态资源默认servlet配置
1、加入对静态资源的处理:js,css,gif,png
2、允许使用"/"做整体映射 <url-pattern>/</url-pattern>
-->
<mvc:default-servlet-handler/> </beans>
spring-mybatis.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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--自动扫描包-->
<context:component-scan base-package="com.imarce.pageDemo"/> <!-- 加载properties文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:db.properties"/>
</bean> <!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean> <!-- mybatis和spring完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:mapping/*.xml"/>
</bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.imarce.pageDemo.Dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
</beans>
web.xml: 这里有个问题,创建完maven项目自动生成的web.xml头部版本可能是2.3左右的,如果版本低于2.4,会导致jsp页面的EL表达式失效。只要把头部改到2.4以上即可。
详见:http://blog.csdn.net/hanshileiai/article/details/46619777
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"> <!-- spring mvc servlet-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet> <context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param> <!-- 编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- 防止spring内存溢出监听器,比如quartz -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
<!--使用request可以使用-->
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener> <servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 此处也可以配置成 *.do 形式 -->
<url-pattern>/</url-pattern>
</servlet-mapping> <welcome-file-list>
<welcome-file>transferPage.jsp</welcome-file>
</welcome-file-list> <display-name>Archetype Created Web Application</display-name>
</web-app>
效果图如下:
工程文件下载:http://pan.baidu.com/s/1pLNcykb
基于SSM框架的简易的分页功能——包含maven项目的搭建的更多相关文章
- 基于SSM框架贺州学院校园二手交易平台设计与实现
前言 这个是我当时的毕业论文,分享出来,给同学们参考. 绪论 随着中国新四大发明的诞生,网购成了千千万万网友们购物的新方式,新的购物方式促进商业的发展,但随着人们生活水平的提高,许多新购置的物品用了没 ...
- Java基于ssm框架的restful应用开发
Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token ...
- 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)
概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ...
- 基于SSM框架的JavaWeb通用权限管理系统
- - ->关注博主公众号[C you again],获取更多IT资源(IT技术文章,毕业设计.课程设计系统源码,经典游戏源码,HTML网页模板,PPT.简历模板,!!还可以投稿赚钱!!,点击查 ...
- 基于IntelliJ IDEA开发工具搭建SSM框架并实现页面登录功能详细讲解二
接: 接下来配置类 UserController package com.chatRotbot.controller; import com.chatRotbot.model.User; import ...
- 基于SSM实现的简易员工管理系统
之前自学完了JAVA基础,一直以来也没有做什么好玩的项目,最近暑假,时间上比较空闲,所以又学习了一下最近在企业实际应用中比较流行的SSM框架,以此为基础,通过网络课程,学习编写了一个基于SSM实现的M ...
- pageoffice实现网页打开编辑保存word文档(基于SSM框架)
pageoffice是一款网页集成word.excel...等office工具 并不免费,但可以试用练习 SSM框架搭建过程就省略了 注意:由于谷歌/火狐升级,不支持插件嵌入,建议使用POBrowse ...
- 基于SSM框架配置多数据源
项目基于ssm + maven,通过注解可以实现自动切换数据源. 一.pom.xml <?xml version="1.0" encoding="UTF-8&quo ...
- poscms基于list标签实现的查询分页功能
poscms系统本身有一个在查询页(search页面)实现的查询分页功能,基于系统封装的php函数dr_search_url() 但是今天的需求除了导航栏.列表页.详情页都实现查询功能外,关键是有两个 ...
随机推荐
- HW3.27
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- POJ2479,2593: 两段maximum-subarray问题
虽然是两个水题,但是一次AC的感觉真心不错 这个问题算是maximum-subarray问题的升级版,不过主要算法思想不变: 1. maximum-subarray问题 maximum-subarra ...
- centos6.5安装tomcat8.0.15
首先需要在http://tomcat.apache.org/download-80.cgi下载最新安装包 安装tomcat 将apache-tomcat-8.0.15.tar.gz文件上传到/usr/ ...
- play wav sound
播放 WAV文件 string s = @"D:\Administrator\安装文件\完美世界国际版\patcher\skin\sounds\click.wav&q ...
- 混合模式程序集是针对“v1.1.4322”版的执行时生成的,在没有配置其它信息的情况下,无法在 4.0 执行时中载入该程序集。
看到一个kinect大牛编写的一个水果忍者的体感游戏版本号,让我为自己一直以来仅仅用现有的网页游戏来模拟kinect体感游戏控制感到羞愧,没办法.我还是菜鸟.学习一段后自己模仿星际大战这个游戏.自己写 ...
- Centos下的IO监控与分析
近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下 各种IO监视工具在Linux IO 体系结构中的位置 源自 Linux Performance and Tuni ...
- Free and Open Source Load-Balancing Software and Projects--转
http://www.inlab.de/articles/free-and-open-source-load-balancing-software-and-projects.html This ove ...
- 操作系统-mac安装linux(Ubuntu)
mac安装linux 安装linux,分为两步: 1. 制作linux启动U盘 2. 通过启动U盘,安装Ubuntu系统 Mac OS X下创建USB启动盘 格式化USB驱动盘 下载Ubuntu桌面版 ...
- .Net设计模式_工厂模式(2)
2.工厂方法模式 引言: 上一篇中我们描述了简单工厂的缺点,而解决方法就是把工厂接口化,把工厂的行为标准化,这就是工厂方法模式. 理解: 工厂能制造A和B鞋,如果消费者现在要求制造C鞋.D鞋...咋办 ...
- ssh-add命令
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中.该命令位置在/usr/bin/ssh-add ➜ ydoc git:(v2.0.0) ✗ sudo ssh-add ~/.ssh/i ...