热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:旅游管理项目开发(一)

   1.首先导入项目,修改对应的属性文件信息,配置mybatis,spring,springmvc的相关配置文件尤其是配置好路径(一个路径绑定异常浪费

技术图片

 

 

 1.首先导入项目,修改对应的属性文件信息,配置mybatis,spring,springmvc的相关配置文件

尤其是配置好路径(一个路径绑定异常浪费了我一上午。。。)

 对应配置文件信息:

技术图片

 

 

 技术图片

 

 

 

(1)web.xml



tzms

dispatcherServlet
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath:spring-*.xml

1


dispatcherServlet
/



 (2)jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///tzms?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=true
jdbc.username=root
jdbc.password=981130

 (3)log4j2.xml











filePattern="logs/$${date:yyyy-MM}/log-%d{MM-dd-yyyy}-%i.log.gz">












(4)mybatis-config


"http://mybatis.org/dtd/mybatis-3-config.dtd">










(5)spring-mvc.xml


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"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">







class="org.springframework.format.support.FormattingConversionServiceFactoryBean">








class="org.springframework.web.multipart.commons.CommonsMultipartResolver">








(6)spring-mybatis



xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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/context
http://www.springframework.org/schema/context/spring-context.xsd">

















classpath:mappers/*/dao/*.xml











2.产品-项目模块部分相关代码

(1)controller

package com.tanzhou.tzms.product.controller;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.tanzhou.tzms.product.domain.Project;
import com.tanzhou.tzms.product.service.ProjectService;
@Controller
@RequestMapping("/project")
public class ProjectController {

@Autowired
private ProjectService projectService;

/**
* 返回项目管理页面
* @return
*/
@RequestMapping("/listUI")
public String listUI(){

return "product/project_list";//项目列表页面
}

/**
* 项目管理下的首页展示数据
*/
@RequestMapping("/findAllProject")
@ResponseBody
public List findAllProject(){
List list = projectService.findAllProject();
return list;//转成json[{"id":1,"name":"日本游"...},{}]
}

@RequestMapping("/findPageObject")
@ResponseBody
/**
* {
* "list":[{id:1,name:"长沙游"}]
* "page":[pageCount:1,pageCount:2]
* }
* @return
*/
public Map findPageObject(Integer pageCurrent){
System.out.println(pageCurrent);
Map map = projectService.findPageObject(pageCurrent);
System.out.println(map);
return map;
}

}

  

(2)dao

package com.tanzhou.tzms.product.dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.tanzhou.tzms.product.domain.Project;
/**
* 项目模块的dao层
* @author xq
*
*/
public interface ProjectDao {
/**
* 查询所有的项目信息
*/
public List findAllProject();

/**
* 分页查询项目信息
* @param startIndex 分页时的其实位置
* @param pageSize 查询页数
* @return
*/
//默认会将用户传来的数据存放在map集合中,默认的话时param0,param1
//这里用@param进行取别名,易于读取
public List findPageObject(@Param("startIndex") int startIndex,@Param("pageSize") int pageSize);

/**
* 查询总项目条数
*/
public int getRowCount();

}













  

(3)service

package com.tanzhou.tzms.product.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.tanzhou.tzms.common.web.PageObject;
import com.tanzhou.tzms.product.dao.ProjectDao;
import com.tanzhou.tzms.product.domain.Project;
import com.tanzhou.tzms.product.service.ProjectService;
@Service("projectService")
public class ProjectServiceImpl implements ProjectService{

@Autowired
private ProjectDao projectDao;

@Override
public List findAllProject() {
return projectDao.findAllProject();
}
/**
* 分页需要返回两个数据,一个是查询出来的当前数据,一个是分页的数据
*/
@Override
public Map findPageObject(int currentPage) {
//页面显示条数
int pageSize = 5;
int startIndex = (currentPage - 1) * pageSize;
System.out.println("pageSize---"+pageSize+"startIndex---"+startIndex);
//获取当前页面数据
List findPageObject = projectDao.findPageObject(startIndex, pageSize);

//获取总条数
int rowCount = projectDao.getRowCount();
System.out.println("获取总条数"+rowCount);
//计算总页数
// int pageCount;
// if(rowCount%2 == 0) {
// pageCount = rowCount/2;
// }else {
// pageCount = rowCount/2;
// pageCount += 1;
// }

//封装分页信息
PageObject page = new PageObject();
page.setRowCount(rowCount);//总条数
page.setPageSize(pageSize);//每一页显示的数据
page.setPageCurrent(currentPage);//选择的页数(用户传递)
page.setStartIndex(startIndex);//查询数据开始

//把当前数据以及分页信息封装到map进行返回
Map map = new HashMap();
map.put("list",findPageObject);
map.put("pageObject",page);
return map;
}

}

(4)domain

package com.tanzhou.tzms.product.domain;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.tanzhou.tzms.common.web.JsonDateTypeConvert;
/**
* 项目描述类,用来封装数据,数据传递
*
*/
public class Project implements Serializable{
/**
* 添加序列化版本id,当对象的成员发生变化时,也要保住和流中的版本号一致
*/
private static final long serialVersiOnUID= 1L;
/**
* 项目ID
*/
private Integer id;
/**项目编号*/
private String code;
/**项目名称*/
private String name;
/**项目开始时间*/
private Date beginDate;
/**项目结束时间*/
private Date endDate;
/**项目状态 0:无效,1:有效*/
private Integer status;
/**项目备注*/
private String remarks;
private Date createdTime;
private Date modifiedTime;
private String createdUser;
private String modifiedUser;


public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//对象转成json,取出对象数据,调用get方法取出,如果属性的get方法方法有注解
//就会先进行类型转换再转换成json
@JsonSerialize(using = JsonDateTypeConvert.class)
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
@JsonSerialize(using = JsonDateTypeConvert.class)
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Date getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
public String getCreatedUser() {
return createdUser;
}
public void setCreatedUser(String createdUser) {
this.createdUser = createdUser;
}
public String getModifiedUser() {
return modifiedUser;
}
public void setModifiedUser(String modifiedUser) {
this.modifiedUser = modifiedUser;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public String toString() {
return "Project [id=" + id + ", code=" + code + ", name=" + name + ", beginDate=" + beginDate + ", endDate="
+ endDate + ", status=" + status + ", remarks=" + remarks + ", createdTime=" + createdTime
+ ", modifiedTime=" + modifiedTime + ", createdUser=" + createdUser + ", modifiedUser=" + modifiedUser
+ "]";
}



}

  

前端项目列表部分代码

技术图片

 

 

 

project_list.jsp 

<%@ page cOntentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>



























选择 项目编码 项目名称 开始时间 结束时间 状态 操作

<%@include file="../common/page.jsp" %>




project_list.js

/*
* 当在页面点击项目管理时,页面已经加载完成,需要再次发送异步请求去访问已经写好的加载数据的方法
*
* $(document).ready(function(){

})//当页面加载完成时所执行的函数
*
*/
//jq
$(function(){
//调用
findAllProject();

})//当页面加载完成时所执行的函数
//加载项目信息函数
function findAllProject(){
//异步请求
// var url="project/findAllProject";
var url="project/findPageObject";
// $.ajax({
// url:url,
// typr:"get",
// dataType:"json",
// success:function(){//当异步发送请求成功后的回调函数
//
// }
// })


var pageCurrent = $("#pageId").data("pageCurrent");
if(pageCurrent == undefined){//没有获取当前页数据
pageCurrent = 1;//默认取出第一页数据
}

var params = {"pageCurrent":pageCurrent};
$.getJSON(url,params,function(result){//载入成功后的回调函数
//将数据显示在table中的tbody中
/*

*/
setTableBodyRows(result.list);//取出map中key为list的值,也就是当前数据
//设置分页信息
//调用page.js的setPagination对象,返回参数
setPagination(result.pageObject);//取出map中key为pageObject的值,就是分页数据
});
}
function setTableBodyRows(result){
//1.先获取tbody对象
var tbody = $("#tbodyId");
tbody.empty();//清空数据为了防止还保留着以前的数据
//2. 循环数据result
for(var i in result){
//3.创建一个tr对象,用来显示每行数据
var tr = $("")

//var td = $("")
//td.append(result[i].id)
//4.创建每行的td对象(一行有多个数据)
//5.在td对象内部填充查询出来的具体数据
var td = ""
+""+result[i].code+""
+""+result[i].name+""
+""+result[i].beginDate+""
+""+result[i].endDate+""
// +""+new Date(result[i].beginDate).toLocaleDateString()+""
// +""+new Date(result[i].endDate).toLocaleDateString()+""
+""+(result[i].status==1?‘有效‘:‘无效‘)+""
+"";

//6.将创建出来的td对象添加到tr对象当中去
tr.append(td);
//7.将创建出来的tr对象添加到tbody中
tbody.append(tr);
}
}

page.jsp

<%@ page cOntentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

首页
上一页 

尾页
总页数(1)
当前页(1)


page.js

$(document).ready(function(){
$("#pageId").on(‘click‘,
‘.pre,.next,.first,.last‘,jumpToPage);
});
//设置分页
function setPagination(pageObject){
//1.初始化总页数
$(".pageCount").html("总页数("+pageObject.pageCount+")");
//2.初始化当前页的页码
$(".pageCurrent").html("当前页("+pageObject.pageCurrent+")");
//3.在pageId对应的对象上绑定总页数
//data函数用于以key/value的方式在对象上绑定数据
$("#pageId").data("pageCount",pageObject.pageCount);
//4.在pageId对象的对象上绑定当前页面值
$("#pageId").data("pageCurrent",pageObject.pageCurrent);
}
//定义一个函数,通过此函数实现页面的跳转
function jumpToPage(){
//获得点击对象上class属性对应的值,根据此值
//判定具体点击的是哪个对象(例如上一页,下一页)
var clazz=$(this).attr("class");
//获得pageId对象上绑定的pageCurrent对应的值
var pageCurrent=$(‘#pageId‘).data("pageCurrent");
//获得pageId对象上绑定的pageCount对应的值
var pageCount=$(‘#pageId‘).data("pageCount")
//根据class属性的值判断点击的是否是上一页
if(clazz==‘pre‘&&pageCurrent>1){
pageCurrent--;
}
//判断点击的是否是下一页
if(clazz=="next"&&pageCurrent pageCurrent++;
}
//判断点击的对象是否是首页
if(clazz=="first"){
pageCurrent=1;
}
//判定点击的对象是否是尾页
if(clazz=="last"){
pageCurrent=pageCount;
}
//重写绑定pageCurrent的值
$(‘#pageId‘).data("pageCurrent",pageCurrent);
//重新执行查询操作(根据pageCurrent的值)
findAllProject();
}


推荐阅读
author-avatar
透支的灬漂移_255
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有