flowerMain.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'flowerMain.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link href="flowerCss/style.css" rel="stylesheet" type="text/css" />
======================================分页事件开始=================================
<script type="text/javascript">
function fenye(page){
var url="flower/queryFlowerListByPage.html?page="+page;
alert(url);
location=url;
}
</script>
======================================分页事件结束=================================
</head>
<body onload="text()">
<div id="header_wrapper">
<div id="header" >
<div id="site_title">
<h1><a href="main.htm"><img src="photos/logo.png">
<span>flower shop</span> </a></h1>
</div>
<div id="menu">
<ul>
<li><a href="flowerMain.jsp" >花店首页</a></li>
<li><a href="login.htm">用户登录</a></li>
<li><a href="register.htm">用户注册</a></li>
</ul>
</div>
<!-- end of menu -->
<div class="cart">
<div class="cart_title">
<a href="order!shopcart.action"><img src="photos/cart.gif"></a>
<a href="order.htm">我的订单</a>
</div>
<div class="home_cart_content">
用户: | 商品: | 总价:¥
</div>
</div>
<!-- end of cart -->
</div>
<!-- end of header -->
</div>
<!-- end of header_wrapper -->
<div id="content_wrapper" style="background-color:white">
<div id="content">
<div class="content_section" id="aa">
<h2>掌柜推荐</h2>
<%--
<c:forEach items="${list}" var="e">
<div class="product_box margin_r10">
<input type="hidden" value="${e.id }">
<h3><a href="#">${e.name}</a></h3>
<a href="login.htm"><img src="${e.image}"/></a>
<p class="price">价格: ¥${e.price }</p>
<p class="price">库存: ${e.stock }</p>
<a href="#">详细信息</a> | <a href="#">点此订购</a>
</div>
</c:forEach>
--%>
</div>
<div class="cleaner_h40">
======================================分页展示的内容开始======================
<c:forEach items="${list2}" var="e">
<div class="product_box margin_r10">
<input type="hidden" value="${e.id }">
<h3><a href="#">${e.name}</a></h3>
<a href="login.htm"><img src="${e.image}"/></a>
<p class="price">价格: ¥${e.price }</p>
<p class="price">库存: ${e.stock }</p>
<a href="#">详细信息</a> | <a href="#">点此订购</a>
</div>
</c:forEach>
======================================分页展示的内容结束======================
======================================分页开始=================================
<p align="center">
当前页${index}
<a onclick="fenye(1)" >首页</a>
<a onclick="fenye(${lastPage})">上一页</a>
<a onclick="fenye(${nextPage})">下一页</a>
<a onclick="fenye(${pages})">尾页</a>
跳转至
<select onchange="location='flower/queryFlowerListByPage.html?page='+this.value">
<option>选择</option>
<c:forEach begin="1" end="${pages}" step="1" var="e">
<option
<c:if test="${index==e}">selected</c:if>
>
${e}
</option>
</c:forEach>
</select>
</p>
======================================分页结束=================================
</div>
</div>
<!-- end of content -->
<div id="sidebar">
<div class="sidebar_section" >
<h2>鲜花分类</h2>
<div class="sidebar_section_content">
<%--
<ul class="categories_list">
<li>
<a href="aiqin.htm" >浪漫爱情</a>
</li>
<li>
<a href="shengri.htm" >生日礼物</a>
</li>
<li>
<a href="jieri.htm" >节日祝福</a>
</li>
<li>
<a href="hunli.htm" >婚礼庆典</a>
</li>
</ul>
--%>
<select onchange="choiceType(this.value)">
<option value="">请选择</option>
<option value="浪漫爱情">浪漫爱情</option>
<option value="生日礼物">生日礼物</option>
<option value="节日祝福">节日祝福</option>
<option value="婚礼庆典">婚礼庆典</option>
</select>
</div>
</div>
<div class="cleaner_h30"></div>
</div>
<!-- end of sidebar -->
<div class="cleaner"></div>
</div>
<div id="content_wrapper_bottom"></div>
<!-- end of content_wrapper -->
<div id="footer">
Copyright © 2048 | TR | Designed by TR</div>
<!-- end of footer -->
</body>
</html>
FlowerController.java
package controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import entity.Flower;
import entity.SearchFlowerByPage;
import biz.FlowerBiz;
@Controller
@RequestMapping("flower")
public class FlowerController {
@Resource
private FlowerBiz biz;
@RequestMapping(value="queryFlowerListByPage",method=RequestMethod.GET)
public String queryFlowerListByPage(SearchFlowerByPage searchFlowerByPage, Model m){
int index = searchFlowerByPage.getPage();
int size = 2;
int counts = biz.queryFlowerCounts();
int pages = counts/size==0?counts/size:counts/size+1;//总页数
searchFlowerByPage = new SearchFlowerByPage(index,size);
List<Flower> list2 = biz.queryFlowerListByPage(searchFlowerByPage);
int lastPage = index-1;//上一页
if(lastPage<=0)lastPage=1;
int nextPage = index+1;//下一页
if(nextPage>pages) nextPage=pages;
m.addAttribute("list2", list2);
m.addAttribute("index", index);
m.addAttribute("lastPage", lastPage);
m.addAttribute("nextPage", nextPage);
m.addAttribute("pages", pages);
return "flowerMain";
}
@RequestMapping(value="queryFlowerList",method=RequestMethod.POST)
public void queryFlowerList(HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
List<Flower> list = biz.queryFlowerList();
String str="";
for(Flower e:list){
str += "<div class='product_box margin_r10'>";
str +="<input type='hidden' value="+e.getId()+">";
str +="<h3><a href='#'>"+e.getName()+"</a></h3>";
str += "<a href='#'><img src='"+e.getImage()+"'/></a>";
str +="<p class='price'>价格:"+e.getPrice() +"</p>";
str +=" <p class='price'>库存:"+ e.getStock()+"</p>";
str +=" <a href='#'>"+"详细信息"+"</a> | <a href='#'>"+"点此订购"+"</a>";
str +="</div>";
}
out.print(str);
out.flush();
out.close();
}
@RequestMapping(value="queryFlowerTypeList",method=RequestMethod.POST)
public void queryFlowerTypeList(HttpServletResponse response, String myType) throws IOException{
String type = myType.trim();
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
List<Flower> list = biz.queryFlowerTypeList(type);
String str = "";
for(Flower e:list){
str += "<div class='product_box margin_r10'>";
str +="<input type='hidden' value="+e.getId()+">";
str +="<h3><a href='#'>"+e.getName()+"</a></h3>";
str += "<a href='#'><img src='"+e.getImage()+"'/></a>";
str +="<p class='price'>价格:"+e.getPrice() +"</p>";
str +=" <p class='price'>库存:"+ e.getStock()+"</p>";
str +=" <a href='#'>"+"详细信息"+"</a> | <a href='#'>"+"点此订购"+"</a>";
str +="</div>";
}
out.print(str);
out.flush();
out.close();
}
}
FlowerBizImpl
package biz.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import dao.FlowerDao;
import entity.Flower;
import entity.SearchFlowerByPage;
import biz.FlowerBiz;
@Service
public class FlowerBizImpl implements FlowerBiz {
@Resource
private FlowerDao dao;
public FlowerDao getDao() {
return dao;
}
public void setDao(FlowerDao dao) {
this.dao = dao;
}
public List<Flower> queryFlowerList() {
return dao.queryFlowerList();
}
public List<Flower> queryFlowerTypeList(String type) {
return dao.queryFlowerTypeList(type);
}
public List<Flower> queryFlowerListByPage(SearchFlowerByPage searchFlowerByPage) {
int counts = queryFlowerCounts();//总条数
int size = searchFlowerByPage.getSize();
int pages =counts/size==0?counts/size:counts/size+1;//总页数
int page = searchFlowerByPage.getPage();
page = page<1?1:page;
page = page>pages?pages:page;
return dao.queryFlowerListByPage(searchFlowerByPage);
}
public int queryFlowerCounts() {
return dao.queryFlowerCounts();
}
}
FlowerDao
package dao;
import java.util.List;
import entity.Flower;
import entity.SearchFlowerByPage;
public interface FlowerDao {
public List<Flower> queryFlowerList();
public List<Flower> queryFlowerTypeList(String type);
public List<Flower> queryFlowerListByPage(SearchFlowerByPage searchFlowerByPage);
public int queryFlowerCounts();
}
entity
package entity;
public class Flower {
private int id;
private String name;
private String image;
private int price;
private int stock;
private String type;
public Flower(int id, String name, String image, int price, int stock,
String type) {
super();
this.id = id;
this.name = name;
this.image = image;
this.price = price;
this.stock = stock;
this.type = type;
}
public Flower() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
package entity;
public class SearchFlowerByPage {
private int page;
private int size;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public SearchFlowerByPage(int page, int size) {
super();
this.page = page;
this.size = size;
}
public SearchFlowerByPage() {
super();
}
}
FlowerDao.xml
<?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="dao.FlowerDao"><!-- 写对应类名全路径 -->
<select id="queryFlowerList" resultType="Flower">
select * from t_flower
</select>
<select id="queryFlowerTypeList" resultType="Flower">
select * from t_flower where type=#{type}
</select>
<select id="queryFlowerListByPage" parameterType="SearchFlowerByPage" resultType="Flower">
select * from (select t1.*,rownum as rnum from(select * from t_flower)t1 where rownum <=(#{page}*#{size}))t2 where t2.rnum>(#{page}-1)*#{size}
</select>
<select id="queryFlowerCounts" resultType="int">
select count(*) from t_flower
</select>
</mapper>