Jimoshi_LDS-物流管理系统的路线管理系统增删改
2016-06-29 13:41
429 查看
Jimoshi成长经历:前面的笔记后面再慢慢整理-------方便自己
目录:展示路线管理系统的数据、删除路线管理系统的数据、添加路线管理系统的数据、修改路线管理系统的数据
LDS-物流管理系统的路线管理系统增删改
一、展示路线管理系统的数据
1、编写route.jsp页面
代码示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--引入easyui的样式 -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/bootstrap/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/icon.css">
<!-- js文件 -->
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui-lang-zh_CN.js"></script>
</head>
<script type="text/javascript">
(function(){
//更改底部工具栏 getPager返回页面对象
var pager = $('#toolbar').datagrid('getPager');
pager.pagination({
pageList: [10,20,30],
});
})
</script>
<body>
<table id="RouteList" class="easyui-datagrid"
toolbar="#toolbar" pagination="true" fit="true"
url="${pageContext.request.contextPath}/route/route_showRouteMsg.action" striped="true"
rownumbers="true" fitColumns="true" border="false">
<thead>
<tr>
<th field="ck" checkbox=true></th>
<th field="rid" hidden="true" >路线ID</th>
<th field="rname" width='50' resizable='false' >路线名称</th>
<th field="rstart" width='50' resizable='false'>路线起点</th>
<th field="rend" width='50' resizable='false'>路线终点</th>
</tr>
</thead>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="addroute()">增加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="updateroute()">修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="deleteroute()">删除</a>
</div>
</body>
</html>
2、编写zhj.xml文件
代码示例:
<package name="routes" namespace="/route" extends="struts-default">
<action name="route_*" method="{1}" class="com.zr.action.RouteAction">
</action>
</package>
3、编写RouteAction类测试请求是否发送成功
代码示例:
public class RouteAction(){
System.out.println(111);
}
4、编写RouteDao接口添加查找路线信息的方法
代码示例:
/**
* 路线的dao层
* @author Administrator
*
* @param <T>
*/
public interface RouteDao<T> extends BaseDao<T> {
/**
* 查找路线信息的数量
* @return
*/
public long showRouteCount();
/**
* 根据页码返回路线的信息
* @param page
* @param rows
* @return
*/
public List<TRoute> showRouteMsg(int page,int rows);
}
5、编写RouteDaoImpl类重写RouteDao的方法
代码示例:
@Repository("routeDao")
public class RouteDaoImpl<T> extends BaseDaOImpl<T> implements RouteDao<T> {
@Override
public long showRouteCount() {
// TODO Auto-generated method stub
//查询路线总数的hql语句
String hql = "select count(*) from TRoute";
//将查出来的数据放在list中
List<Object> obj = this.getCurrentSession().createQuery(hql).list();
//获取数据
return (long) obj.get(0);
}
@Override
public List<TRoute> showRouteMsg(int page, int rows) {
// TODO Auto-generated method stub
//查询车辆信息的sql语句
String sql = "SELECT rid,rname,(SELECT dpname from t_priceofdistributionpoint p where t.rstart=p.podpid) rstart,(SELECT dpname from t_priceofdistributionpoint p where t.rend=p.podpid) rend from t_route t limit :start,:scount";
//将查出来的数据转成map
Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//指定当前分页查询的起始位置和行数
query.setInteger("start",(page-1)*rows);
query.setInteger("scount",rows);
//将Query对象query转换成集合,并且把该集合赋值给一个新的集合
List<TRoute> routes = query.list();
return routes;
}
}
6、编写RouteService接口添加查找路线的信息
代码示例:
/**
* 查找路线的信息
* @param page
* @param rows
* @return
*/
public JSONObject showRouteMsg(int page,int rows);
7、编写RouteServiceImpl类重写RouteService方法
代码示例:
@Repository("routeDao")
public class RouteDaoImpl<T> extends BaseDaOImpl<T> implements RouteDao<T> {
@Override
public long showRouteCount() {
// TODO Auto-generated method stub
//查询路线总数的hql语句
String hql = "select count(*) from TRoute";
//将查出来的数据放在list中
List<Object> obj = this.getCurrentSession().createQuery(hql).list();
//获取数据
return (long) obj.get(0);
}
@Override
public List<TRoute> showRouteMsg(int page, int rows) {
// TODO Auto-generated method stub
//查询路线信息的sql语句
String sql = "SELECT rid,rname,(SELECT dpname from t_priceofdistributionpoint p where t.rstart=p.podpid) rstart,(SELECT dpname from t_priceofdistributionpoint p where t.rend=p.podpid) rend from t_route t limit :start,:scount";
//将查出来的数据转成map
Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//指定当前分页查询的起始位置和行数
query.setInteger("start",(page-1)*rows);
query.setInteger("scount",rows);
//将Query对象query转换成集合,并且把该集合赋值给一个新的集合
List<TRoute> routes = query.list();
return routes;
}
}
8、编写RouteAction类完成具体实现方法
代码示例:
/**
* 路线的控制层
* @author Administrator
f730
*
*/
@Controller("routeAction")
// 保证当有请求的时候,都创建一个Action对象
@Scope(value="prototype")
public class RouteAction extends ActionSupport implements ServletResponseAware{
private HttpServletResponse response;
private int page;
private int rows;
public int getPage() { return page; }
public void setPage(int page) { this.page = page; }
public int getRows() { return rows; }
public void setRows(int rows) { this.rows = rows; }
@Resource
private RouteService routeService;
//显示路线信息
public void showRouteMsg(){
JSONObject obj = routeService.showRouteMsg(page, rows);
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response=response;
}
}
9、发送请求测试是否展示成功
二、删除路线管理系统的数据
1、编写route.jsp页面
代码示例:
//删除用户信息
function deleteroute(){
//获取被选中需要删除的数据
var data = $("#RouteList").datagrid('getSelections');
if(data.length==0){
$.messager.show({
title:'警告',
msg:'请选中需要删除的数据',
timeout:1000,
showType:'slide',
style:{
top:'100',
}
});
}else{
//声明一个空的数组 装选中的rid
var rids = [];
for (var i = 0; i < data.length; i++) {
rids.push(data[i].rid);
}
$.messager.confirm('确认对话框', '您确认删除选中的'+data.length+'条数据吗?', function(r){
if (r){
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:'${pageContext.request.contextPath}/route/route_deleteRouteMsg.action',
data:{"rids":rids},
dataType:"text",
success:function(data){
//提示删除成功
$.messager.alert('提示','删除成功','info',function(){
$("#RouteList").datagrid('reload');
$("#RouteList").datagrid('uncheckAll');
});
}
});
}
});
}
}
2、编写RouteAction类测试删除请求是否成功
代码示例:
//删除路线信息
public void deleteRouteMsg(){
System.out.println(111);
}
3、编写RouteDao接口添加删除的方法
代码示例:
/**
* 删除路线信息
* @param rid 传入车辆id
*/
public void deleteRouteMsg(int rid);
4、编写RouteDaoImpl类重写RouteDao接口的方法
代码示例:
@Override
public void deleteRouteMsg(int rid) {
// TODO Auto-generated method stub
TRoute route = (TRoute) this.getCurrentSession().get(TRoute.class, Integer.valueOf(rid));
this.getCurrentSession().delete(route);
}
5、编写RouteService接口添加批量删除的方法
代码示例:
/**
* 批量删除路线的信息
* @param rids 传入选中的路线rid
*/
public void deleteRouteMsg(String rids[]);
6、编写RouteServiceImpl类实现RouteService接口的方法
代码示例:
@Override
public void deleteRouteMsg(String[] rids) {
// TODO Auto-generated method stub
for (int i = 0; i < rids.length; i++) {
routeDao.deleteRouteMsg(Integer.valueOf(rids[i]));
}
}
7、编写RouteAction类调用RouteServiceImpl类中的方法
代码示例:
private HttpServletRequest request;
private int rids[];
public int[] getRids() { return rids;}
public void setRids(int[] rids) {this.rids = rids;}
//删除路线信息
public void deleteRouteMsg(){
System.out.println(111);
String rids[]=request.getParameterValues("rids[]");
routeService.deleteRouteMsg(rids);
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request;
}
8、发送请求测试删除是否成功
三、添加路线管理系统的数据
1、编写route.jsp页面
代码示例:
<script type="text/javascript">
//显示添加车辆信息框
function addroute(){
$("#dlg").dialog("open").dialog('setTitle', '添加车辆信息');
$('#dlg').form('clear');
$('#routeupdate').hide();
$('#routeadd').show();
$('#rrid').hide();
$('#lab').hide();
}
//确认添加车辆信息
function routeadd(){
//获得新增窗口内输入的文本框的值
var route = new Object();
route.rname = $("#rname").val();
route.rstart = $("#rstart").combobox('getValue');
route.rend = $("#rend").combobox('getValue');
var json = JSON.stringify(route);
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/route/route_addRouteMsg.action",
data:{"json":json},
dataType:"text",
success:function(data){
$.messager.alert('提示','添加成功','info',function(){
//刷新页面,关闭窗口,清除表单内容
$("#RouteList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
});
}
})
};
</script>
<body>
<div id="dlg" class="easyui-dialog"
style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle" id="">路线信息</div>
<form id="fm" method="post" novalidate>
<div class="fitem" id="routeid">
<div class="fitem" id="rrid">
<label>路线ID:</label>
<input id="rid" name="rid" class="easyui-textbox" required="true">
</div>
<div class="fitem">
<label>路线名称:</label>
<input id="rname" name="cname" class="easyui-textbox" required="true" >
</div>
<div class="fitem">
<label>路线起点:</label>
<input id="rstart" class="easyui-combobox" name="rstart"
data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/route/route_findRstartMsg.action'" />
</div>
<div class="fitem">
<label>路线终点:</label>
<input id="rend" class="easyui-combobox" name="rend"
data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/route/route_findRendMsg.action'" />
</div>
<div class="fitem" id="lab">
<label> 注:每次修改都需重新设置路线起点、终点</label>
</div>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
style="width:90px" onclick="routeupdate()" id="routeupdate">确认修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
onclick="routeadd()" style="width:90px" id="routeadd" >确认添加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel"
onclick="javascript:$('#dlg').dialog('close')" id="et" style="width:90px">取消</a>
</div>
</body>
2、编写RouteAction测试请求是否发送成功
代码示例:
//展示路线起点配送点名称信息(动态加载配送点名称)
public void findRstartMsg(){
System.out.println(路线起点"");
}
//展示路线终点配送点名称信息(动态加载配送点名称)
public void findRendMsg(){
System.out.println("路线终点");
}
//添加路线信息
public void addRouteMsg(){
System.out.println("添加路线");
}
3、编写RouteDao接口添加动态加载起始点和添加的方法
代码示例:
/**
* 查询配送点名称信息(动态加载状态)
* @return
*/
public JSONArray findDpnameMsg();
/**
* 添加路线信息
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
* @return
*/
public boolean addRouteMsg(String rname,String rstart,String rend);
4、编写RouteDaoImpl类重写RouteDao的方法
代码示例:
@Override
public JSONArray findDpnameMsg() {
// TODO Auto-generated method stub
//声明一个map数据集合
Map<String, String> map = new HashMap<String,String>();
//声明一个jso数组
JSONArray jso=new JSONArray();
//查询配送点名称信息的hql语句
String hql="from TDistributionpoint";
//查询hql语句
Query query=this.getCurrentSession().createQuery(hql);
//将查询出来的hql数据放入list中
List<TDistributionpoint> tdbp = query.list();
for (TDistributionpoint tDistributionpoint : tdbp) {
//获得配送点的id和名字
String Dpid = String.valueOf(tDistributionpoint.getDpid());
String Dpname = tDistributionpoint.getDpname();
//将配送点id和名字放入map集合中
map.put("id", Dpid);
map.put("text", Dpname);
//将这个集合放入jso数组中
jso.add(map);
}
//返回jso数组
return jso;
}
@Override
public boolean addRouteMsg(String rname, String rstart, String rend) {
// TODO Auto-generated method stub
boolean flag =false;
TRoute route = new TRoute();
route.setRname(rname);
route.setRstart(rstart);
route.setRend(rend);
this.getCurrentSession().save(route);
return flag;
}
5、编写RouteService接口添加动态加载起始点的方法和添加的方法
代码示例:
/**
* 查询配送点名称信息(动态加载状态)
* @return
*/
public JSONArray findDpnameMsg();
/**
* 添加路线信息
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
* @return
*/
public boolean addRouteMsg(String rname,String rstart,String rend);
6、编写RouteServiceImpl类重写RouteService接口的方法
代码示例:
@Override
public JSONArray findDpnameMsg() {
// TODO Auto-generated method stub
return routeDao.findDpnameMsg();
}
@Override
public boolean addRouteMsg(String rname, String rstart, String rend) {
// TODO Auto-generated method stub
return routeDao.addRouteMsg(rname, rstart, rend);
}
7、编写RouteAction调用RouteServiceImpl的方法
代码示例:
//展示路线起点配送点名称信息(动态加载配送点名称)
public void findRstartMsg(){
JSONArray obj = routeService.findDpnameMsg();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//展示路线终点配送点名称信息(动态加载配送点名称)
public void findRendMsg(){
JSONArray obj = routeService.findDpnameMsg();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//添加路线信息
public void addRouteMsg(){
JSONObject jso = JSONObject.fromObject(json);
System.out.println(json);
String rname=jso.getString("rname");
String rstart=jso.getString("rstart");
String rend=jso.getString("rend");
Boolean flag=routeService.addRouteMsg(rname,rstart,rend);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write(flag+"");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、测试添加功能是否成功
四、修改路线管理系统的数据
1、编写route.jsp页面
代码示例:
<script type="text/javascript">
//确认修改用户信息
function routeupdate(){
//获得新增窗口内输入的文本框的值
var route = new Object();
route.rid = $("#rid").val();
route.rname = $("#rname").val();
route.rstart = $("#rstart").combobox('getValue');
route.rend = $("#rend").combobox('getValue');
var json1 = JSON.stringify(route);
$.ajax({
type:"post", url:"${pageContext.request.contextPath}/route/route_updateRouteMsg.action",
data:{"json1":json1},
dataType:"text",
success:function(data){
$.messager.alert('提示','修改成功', data)
//刷新页面,关闭窗口,清除表单内容
$("#RouteList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
}
})
}
</script>
2、编写RouteAction测试请求是否成功
代码示例:
//修改用户信息
public void updateRouteMsg(){
System.out.println(111);
}
3、编写RouteDao接口添加修改的方法
代码示例:
/**
* 修改路线信息
* @param rid 传入路线id
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
*/
public void updateRouteMsg(int rid,String rname,String rstart,String rend);
4、编写RouteDaoImpl类重写RouteDao接口的方法
代码示例:
@Override
public void updateRouteMsg(int rid, String rname, String rstart, String rend) {
// TODO Auto-generated method stub
TRoute td = (TRoute) this.getCurrentSession().get(TRoute.class, Integer.valueOf(rid));
td.setRname(rname);
td.setRstart(rstart);
td.setRend(rend);
this.getCurrentSession().update(td);
}
5、编写RouteService接口添加修改路线的方法
代码示例:
/**
* 修改路线信息
* @param rid 传入路线id
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
*/
public void updateRouteMsg(int rid,String rname,String rstart,String rend);
6、编写RouteServiceImpl类重写RouteService接口的方法
代码示例:
@Override
public void updateRouteMsg(int rid, String rname, String rstart, String rend) {
// TODO Auto-generated method stub
routeDao.updateRouteMsg(rid, rname, rstart, rend);
}
7、编写RouteAction类添加修改的方法
代码示例:
private String json1;
public String getJson1() { return json1;}
public void setJson1(String json1) { this.json1 = json1; }
//修改用户信息
public void updateRouteMsg(){
JSONObject jso = JSONObject.fromObject(json1);
int rid = jso.getInt("rid");
String rname=jso.getString("rname");
String rstart=jso.getString("rstart");
String rend=jso.getString("rend");
routeService.updateRouteMsg(rid, rname, rstart, rend);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、发送请求测试修改功能是否成功
目录:展示路线管理系统的数据、删除路线管理系统的数据、添加路线管理系统的数据、修改路线管理系统的数据
LDS-物流管理系统的路线管理系统增删改
一、展示路线管理系统的数据
1、编写route.jsp页面
代码示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--引入easyui的样式 -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/bootstrap/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/icon.css">
<!-- js文件 -->
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui-lang-zh_CN.js"></script>
</head>
<script type="text/javascript">
(function(){
//更改底部工具栏 getPager返回页面对象
var pager = $('#toolbar').datagrid('getPager');
pager.pagination({
pageList: [10,20,30],
});
})
</script>
<body>
<table id="RouteList" class="easyui-datagrid"
toolbar="#toolbar" pagination="true" fit="true"
url="${pageContext.request.contextPath}/route/route_showRouteMsg.action" striped="true"
rownumbers="true" fitColumns="true" border="false">
<thead>
<tr>
<th field="ck" checkbox=true></th>
<th field="rid" hidden="true" >路线ID</th>
<th field="rname" width='50' resizable='false' >路线名称</th>
<th field="rstart" width='50' resizable='false'>路线起点</th>
<th field="rend" width='50' resizable='false'>路线终点</th>
</tr>
</thead>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="addroute()">增加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="updateroute()">修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="deleteroute()">删除</a>
</div>
</body>
</html>
2、编写zhj.xml文件
代码示例:
<package name="routes" namespace="/route" extends="struts-default">
<action name="route_*" method="{1}" class="com.zr.action.RouteAction">
</action>
</package>
3、编写RouteAction类测试请求是否发送成功
代码示例:
public class RouteAction(){
System.out.println(111);
}
4、编写RouteDao接口添加查找路线信息的方法
代码示例:
/**
* 路线的dao层
* @author Administrator
*
* @param <T>
*/
public interface RouteDao<T> extends BaseDao<T> {
/**
* 查找路线信息的数量
* @return
*/
public long showRouteCount();
/**
* 根据页码返回路线的信息
* @param page
* @param rows
* @return
*/
public List<TRoute> showRouteMsg(int page,int rows);
}
5、编写RouteDaoImpl类重写RouteDao的方法
代码示例:
@Repository("routeDao")
public class RouteDaoImpl<T> extends BaseDaOImpl<T> implements RouteDao<T> {
@Override
public long showRouteCount() {
// TODO Auto-generated method stub
//查询路线总数的hql语句
String hql = "select count(*) from TRoute";
//将查出来的数据放在list中
List<Object> obj = this.getCurrentSession().createQuery(hql).list();
//获取数据
return (long) obj.get(0);
}
@Override
public List<TRoute> showRouteMsg(int page, int rows) {
// TODO Auto-generated method stub
//查询车辆信息的sql语句
String sql = "SELECT rid,rname,(SELECT dpname from t_priceofdistributionpoint p where t.rstart=p.podpid) rstart,(SELECT dpname from t_priceofdistributionpoint p where t.rend=p.podpid) rend from t_route t limit :start,:scount";
//将查出来的数据转成map
Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//指定当前分页查询的起始位置和行数
query.setInteger("start",(page-1)*rows);
query.setInteger("scount",rows);
//将Query对象query转换成集合,并且把该集合赋值给一个新的集合
List<TRoute> routes = query.list();
return routes;
}
}
6、编写RouteService接口添加查找路线的信息
代码示例:
/**
* 查找路线的信息
* @param page
* @param rows
* @return
*/
public JSONObject showRouteMsg(int page,int rows);
7、编写RouteServiceImpl类重写RouteService方法
代码示例:
@Repository("routeDao")
public class RouteDaoImpl<T> extends BaseDaOImpl<T> implements RouteDao<T> {
@Override
public long showRouteCount() {
// TODO Auto-generated method stub
//查询路线总数的hql语句
String hql = "select count(*) from TRoute";
//将查出来的数据放在list中
List<Object> obj = this.getCurrentSession().createQuery(hql).list();
//获取数据
return (long) obj.get(0);
}
@Override
public List<TRoute> showRouteMsg(int page, int rows) {
// TODO Auto-generated method stub
//查询路线信息的sql语句
String sql = "SELECT rid,rname,(SELECT dpname from t_priceofdistributionpoint p where t.rstart=p.podpid) rstart,(SELECT dpname from t_priceofdistributionpoint p where t.rend=p.podpid) rend from t_route t limit :start,:scount";
//将查出来的数据转成map
Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//指定当前分页查询的起始位置和行数
query.setInteger("start",(page-1)*rows);
query.setInteger("scount",rows);
//将Query对象query转换成集合,并且把该集合赋值给一个新的集合
List<TRoute> routes = query.list();
return routes;
}
}
8、编写RouteAction类完成具体实现方法
代码示例:
/**
* 路线的控制层
* @author Administrator
f730
*
*/
@Controller("routeAction")
// 保证当有请求的时候,都创建一个Action对象
@Scope(value="prototype")
public class RouteAction extends ActionSupport implements ServletResponseAware{
private HttpServletResponse response;
private int page;
private int rows;
public int getPage() { return page; }
public void setPage(int page) { this.page = page; }
public int getRows() { return rows; }
public void setRows(int rows) { this.rows = rows; }
@Resource
private RouteService routeService;
//显示路线信息
public void showRouteMsg(){
JSONObject obj = routeService.showRouteMsg(page, rows);
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response=response;
}
}
9、发送请求测试是否展示成功
二、删除路线管理系统的数据
1、编写route.jsp页面
代码示例:
//删除用户信息
function deleteroute(){
//获取被选中需要删除的数据
var data = $("#RouteList").datagrid('getSelections');
if(data.length==0){
$.messager.show({
title:'警告',
msg:'请选中需要删除的数据',
timeout:1000,
showType:'slide',
style:{
top:'100',
}
});
}else{
//声明一个空的数组 装选中的rid
var rids = [];
for (var i = 0; i < data.length; i++) {
rids.push(data[i].rid);
}
$.messager.confirm('确认对话框', '您确认删除选中的'+data.length+'条数据吗?', function(r){
if (r){
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:'${pageContext.request.contextPath}/route/route_deleteRouteMsg.action',
data:{"rids":rids},
dataType:"text",
success:function(data){
//提示删除成功
$.messager.alert('提示','删除成功','info',function(){
$("#RouteList").datagrid('reload');
$("#RouteList").datagrid('uncheckAll');
});
}
});
}
});
}
}
2、编写RouteAction类测试删除请求是否成功
代码示例:
//删除路线信息
public void deleteRouteMsg(){
System.out.println(111);
}
3、编写RouteDao接口添加删除的方法
代码示例:
/**
* 删除路线信息
* @param rid 传入车辆id
*/
public void deleteRouteMsg(int rid);
4、编写RouteDaoImpl类重写RouteDao接口的方法
代码示例:
@Override
public void deleteRouteMsg(int rid) {
// TODO Auto-generated method stub
TRoute route = (TRoute) this.getCurrentSession().get(TRoute.class, Integer.valueOf(rid));
this.getCurrentSession().delete(route);
}
5、编写RouteService接口添加批量删除的方法
代码示例:
/**
* 批量删除路线的信息
* @param rids 传入选中的路线rid
*/
public void deleteRouteMsg(String rids[]);
6、编写RouteServiceImpl类实现RouteService接口的方法
代码示例:
@Override
public void deleteRouteMsg(String[] rids) {
// TODO Auto-generated method stub
for (int i = 0; i < rids.length; i++) {
routeDao.deleteRouteMsg(Integer.valueOf(rids[i]));
}
}
7、编写RouteAction类调用RouteServiceImpl类中的方法
代码示例:
private HttpServletRequest request;
private int rids[];
public int[] getRids() { return rids;}
public void setRids(int[] rids) {this.rids = rids;}
//删除路线信息
public void deleteRouteMsg(){
System.out.println(111);
String rids[]=request.getParameterValues("rids[]");
routeService.deleteRouteMsg(rids);
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request;
}
8、发送请求测试删除是否成功
三、添加路线管理系统的数据
1、编写route.jsp页面
代码示例:
<script type="text/javascript">
//显示添加车辆信息框
function addroute(){
$("#dlg").dialog("open").dialog('setTitle', '添加车辆信息');
$('#dlg').form('clear');
$('#routeupdate').hide();
$('#routeadd').show();
$('#rrid').hide();
$('#lab').hide();
}
//确认添加车辆信息
function routeadd(){
//获得新增窗口内输入的文本框的值
var route = new Object();
route.rname = $("#rname").val();
route.rstart = $("#rstart").combobox('getValue');
route.rend = $("#rend").combobox('getValue');
var json = JSON.stringify(route);
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/route/route_addRouteMsg.action",
data:{"json":json},
dataType:"text",
success:function(data){
$.messager.alert('提示','添加成功','info',function(){
//刷新页面,关闭窗口,清除表单内容
$("#RouteList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
});
}
})
};
</script>
<body>
<div id="dlg" class="easyui-dialog"
style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle" id="">路线信息</div>
<form id="fm" method="post" novalidate>
<div class="fitem" id="routeid">
<div class="fitem" id="rrid">
<label>路线ID:</label>
<input id="rid" name="rid" class="easyui-textbox" required="true">
</div>
<div class="fitem">
<label>路线名称:</label>
<input id="rname" name="cname" class="easyui-textbox" required="true" >
</div>
<div class="fitem">
<label>路线起点:</label>
<input id="rstart" class="easyui-combobox" name="rstart"
data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/route/route_findRstartMsg.action'" />
</div>
<div class="fitem">
<label>路线终点:</label>
<input id="rend" class="easyui-combobox" name="rend"
data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/route/route_findRendMsg.action'" />
</div>
<div class="fitem" id="lab">
<label> 注:每次修改都需重新设置路线起点、终点</label>
</div>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
style="width:90px" onclick="routeupdate()" id="routeupdate">确认修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
onclick="routeadd()" style="width:90px" id="routeadd" >确认添加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel"
onclick="javascript:$('#dlg').dialog('close')" id="et" style="width:90px">取消</a>
</div>
</body>
2、编写RouteAction测试请求是否发送成功
代码示例:
//展示路线起点配送点名称信息(动态加载配送点名称)
public void findRstartMsg(){
System.out.println(路线起点"");
}
//展示路线终点配送点名称信息(动态加载配送点名称)
public void findRendMsg(){
System.out.println("路线终点");
}
//添加路线信息
public void addRouteMsg(){
System.out.println("添加路线");
}
3、编写RouteDao接口添加动态加载起始点和添加的方法
代码示例:
/**
* 查询配送点名称信息(动态加载状态)
* @return
*/
public JSONArray findDpnameMsg();
/**
* 添加路线信息
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
* @return
*/
public boolean addRouteMsg(String rname,String rstart,String rend);
4、编写RouteDaoImpl类重写RouteDao的方法
代码示例:
@Override
public JSONArray findDpnameMsg() {
// TODO Auto-generated method stub
//声明一个map数据集合
Map<String, String> map = new HashMap<String,String>();
//声明一个jso数组
JSONArray jso=new JSONArray();
//查询配送点名称信息的hql语句
String hql="from TDistributionpoint";
//查询hql语句
Query query=this.getCurrentSession().createQuery(hql);
//将查询出来的hql数据放入list中
List<TDistributionpoint> tdbp = query.list();
for (TDistributionpoint tDistributionpoint : tdbp) {
//获得配送点的id和名字
String Dpid = String.valueOf(tDistributionpoint.getDpid());
String Dpname = tDistributionpoint.getDpname();
//将配送点id和名字放入map集合中
map.put("id", Dpid);
map.put("text", Dpname);
//将这个集合放入jso数组中
jso.add(map);
}
//返回jso数组
return jso;
}
@Override
public boolean addRouteMsg(String rname, String rstart, String rend) {
// TODO Auto-generated method stub
boolean flag =false;
TRoute route = new TRoute();
route.setRname(rname);
route.setRstart(rstart);
route.setRend(rend);
this.getCurrentSession().save(route);
return flag;
}
5、编写RouteService接口添加动态加载起始点的方法和添加的方法
代码示例:
/**
* 查询配送点名称信息(动态加载状态)
* @return
*/
public JSONArray findDpnameMsg();
/**
* 添加路线信息
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
* @return
*/
public boolean addRouteMsg(String rname,String rstart,String rend);
6、编写RouteServiceImpl类重写RouteService接口的方法
代码示例:
@Override
public JSONArray findDpnameMsg() {
// TODO Auto-generated method stub
return routeDao.findDpnameMsg();
}
@Override
public boolean addRouteMsg(String rname, String rstart, String rend) {
// TODO Auto-generated method stub
return routeDao.addRouteMsg(rname, rstart, rend);
}
7、编写RouteAction调用RouteServiceImpl的方法
代码示例:
//展示路线起点配送点名称信息(动态加载配送点名称)
public void findRstartMsg(){
JSONArray obj = routeService.findDpnameMsg();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//展示路线终点配送点名称信息(动态加载配送点名称)
public void findRendMsg(){
JSONArray obj = routeService.findDpnameMsg();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//添加路线信息
public void addRouteMsg(){
JSONObject jso = JSONObject.fromObject(json);
System.out.println(json);
String rname=jso.getString("rname");
String rstart=jso.getString("rstart");
String rend=jso.getString("rend");
Boolean flag=routeService.addRouteMsg(rname,rstart,rend);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write(flag+"");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、测试添加功能是否成功
四、修改路线管理系统的数据
1、编写route.jsp页面
代码示例:
<script type="text/javascript">
//确认修改用户信息
function routeupdate(){
//获得新增窗口内输入的文本框的值
var route = new Object();
route.rid = $("#rid").val();
route.rname = $("#rname").val();
route.rstart = $("#rstart").combobox('getValue');
route.rend = $("#rend").combobox('getValue');
var json1 = JSON.stringify(route);
$.ajax({
type:"post", url:"${pageContext.request.contextPath}/route/route_updateRouteMsg.action",
data:{"json1":json1},
dataType:"text",
success:function(data){
$.messager.alert('提示','修改成功', data)
//刷新页面,关闭窗口,清除表单内容
$("#RouteList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
}
})
}
</script>
2、编写RouteAction测试请求是否成功
代码示例:
//修改用户信息
public void updateRouteMsg(){
System.out.println(111);
}
3、编写RouteDao接口添加修改的方法
代码示例:
/**
* 修改路线信息
* @param rid 传入路线id
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
*/
public void updateRouteMsg(int rid,String rname,String rstart,String rend);
4、编写RouteDaoImpl类重写RouteDao接口的方法
代码示例:
@Override
public void updateRouteMsg(int rid, String rname, String rstart, String rend) {
// TODO Auto-generated method stub
TRoute td = (TRoute) this.getCurrentSession().get(TRoute.class, Integer.valueOf(rid));
td.setRname(rname);
td.setRstart(rstart);
td.setRend(rend);
this.getCurrentSession().update(td);
}
5、编写RouteService接口添加修改路线的方法
代码示例:
/**
* 修改路线信息
* @param rid 传入路线id
* @param rname 传入路线名称
* @param rstart 传入路线起点
* @param rend 传入路线终点
*/
public void updateRouteMsg(int rid,String rname,String rstart,String rend);
6、编写RouteServiceImpl类重写RouteService接口的方法
代码示例:
@Override
public void updateRouteMsg(int rid, String rname, String rstart, String rend) {
// TODO Auto-generated method stub
routeDao.updateRouteMsg(rid, rname, rstart, rend);
}
7、编写RouteAction类添加修改的方法
代码示例:
private String json1;
public String getJson1() { return json1;}
public void setJson1(String json1) { this.json1 = json1; }
//修改用户信息
public void updateRouteMsg(){
JSONObject jso = JSONObject.fromObject(json1);
int rid = jso.getInt("rid");
String rname=jso.getString("rname");
String rstart=jso.getString("rstart");
String rend=jso.getString("rend");
routeService.updateRouteMsg(rid, rname, rstart, rend);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、发送请求测试修改功能是否成功
相关文章推荐
- Jimoshi_Hibernate 框架学习(四)--事务隔离级别、Hibernate执行SQL、HQL语句、连接池、Hibernate二级缓存
- Jimoshi_Spring 框架学习(一)--Spring实现IOC思想、javabean对象、Spring对象和对象之间关系
- Jimoshi_Struts2 框架学习(一)--通过maven 创建struts2 的项目、处理接收值
- Jimoshi_Struts2 框架学习(三)--valueStack和ognl、struts2验证、struts2文件上传和下载
- Jimoshi_Spring 框架学习(二)--AOP(面向切面)、AOP管理事务
- Jimoshi_整合三大框架(一)--创建整合maven项目(SSH项目)、简单的测试示例(登录)、加载数据库模拟数据
- Jimoshi_用easyui做Struts2+Hibenate4学生实体类(Student)的增删改
- Jimoshi_三大框架完成DLS-物流管理系统的车辆管理系统增删改
- golang 并发设计模式(二)--管道模式管道和显式取消
- 108. Convert Sorted Array to Binary Search Tree
- 异步任务 Celery 简明笔记
- 从 PHP 转到 Node.js 的那些事
- listView的item侧滑显示操作
- django1.9 使用 MySQLdb
- 一般app底部导航栏的分页效果
- mongo小总结
- 手机移动端 web整合
- 弹出框设置在页面居中
- swift-ios开发pod的使用(1)
- 操作系统精髓与设计原理(原书第6版)——学习笔记(2)