SSM框架之批量增加示例(同步请求jsp视图解析)
准备环境:SSM框架+JDK8/JDK7+MySQL5.7+MAVEN3以上+Tomcat8/7应用服务器
示例说明:
分发给用户优惠券,通过checkbox选中批量分发,对应也就是批量增加。
对于公司使用freemarket或者jsp或者volocity,有一定的启示意思。
不论视图用的是jsp或者非jsp,都可以参考这个示例。
下面采用的是MVC模式。
简单说下MVC模式吧
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
- Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
- View(视图) - 视图代表模型包含的数据的可视化。
- Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
下面的示例足以验证MVC,可供参考:
jsp代码如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!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"> <title>发放优惠券</title> <link href="${APP_PATH}/css/main.css" type="text/css" rel="stylesheet"> <link rel="stylesheet" href="${APP_PATH}/layui/css/layui.css" media="all"> <script src="${APP_PATH}/js/easyui/jquery-1.8.0.min.js"type="text/javascript"></script></head> <body><div class="layui-container"><div class="layui-row"><h2>发放优惠券</h2><script>function checkAll() { var all=document.getElementById('all');//获取到点击全选的那个复选框的id var one=document.getElementsByName('memberId');//获取到复选框的名称 if(all.checked==true){//因为获得的是数组,所以要循环 为每一个checked赋值 for(var i=0;i<one.length;i++){ one[i].checked=true; } }else{ for(var j=0;j<one.length;j++){ one[j].checked=false; } } } $(function(){$("#tishi").click(function(){alert("分发成功");});});</script><div style="margin: 20px 0;"></div><div class="easyui-layout" style="width: 700px; height: 350px;"><divdata-options="region:'center',title:'Main Title',iconCls:'icon-ok'"><form action="${pageContext.request.contextPath}/json" method="post"id="checkform"><table class="easyui-datagrid"data-options="url:'datagrid_data1.json',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true"><thead><tr><th data-options="field:'itemid'" width="80">昵称</th><th data-options="field:'productid'" width="100">手机号</th><th data-options="field:'listprice',align:'right'" width="80">操作</th></tr></thead><c:if test="${list!=null}"><c:forEach items="${list}" var="app"><tr><td>${app.nickName}</td><td>${app.account}</td><td><input type="checkbox" name="memberId"value="${app.memberId}" /></td></tr></c:forEach></c:if></table><input type="hidden" name="hotelNo" id="hotelNo" value="${hotelNo}"/><input type="hidden" name="couponId" id="couponId_to" readonly="readonly" value="${couponId }" /> <input id="all"onclick="checkAll()" type="checkbox" />全选 <br /> <inputtype="submit" id="tishi" onclick="checkAll()" value="提交" /></form></div></div></div></div><!-- js --><script src="${APP_PATH}/layui/layui.js" charset="utf-8"></script> <script src="${APP_PATH}/js/layer/layer-v3.1.1/layer/mobile/layer.js"type="text/javascript"></script></body> </html>
Controller代码:
/*** 优惠券批量分发给用户* @param qv* @return*/@RequestMapping(value = "json", method = {RequestMethod.POST })public Object save(QueryVo qv,HttpServletRequest request,Model model){String hotelNo = request.getParameter("hotelNo");Hotel hotel = hotelService.queryHotelNoInfo(hotelNo);logger.info("优惠券Id:"+qv.getCouponId());logger.info("所有数组:"+qv.getMemberId());//判断是否为空if (qv.getMemberId()!=null){ int size=java.lang.reflect.Array.getLength(qv.getMemberId()); //获取传过来的数组长度 System.out.println(size);String memberId[]=qv.getMemberId();//获取数组中的值 String couponId=qv.getCouponId();//获取优惠券IDfor (int i = 0; i < memberId.length; i++) {AccountCoupon ac = new AccountCoupon();ac.setMemberId(memberId[i]);ac.setCouponId(couponId);ac.setFrom(null);SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");String date = sdf.format(new Date());ac.setReceiveDate(date);ac.setStatus(new Consts().COUPON_UNUSED);//默认状态 "待使用"ac.setUsedDate(null);List<AccountCoupon> list = new ArrayList<AccountCoupon>();list.add(ac);//添加到集合中logger.info("批量分发优惠券成功");accountCouponService.insertAccountCouponInfo(list);//批量插入数据 }} model.addAttribute("hotel", hotel);return "/Set/transit4";}
对应的DAO和Service及其实现类和xml如下:
DAO和Service代码相同不变
//批量插入数据public void insertAccountCouponInfo(@Param("acs")List<AccountCoupon> acs);
Service实现类如下:
@Overridepublic void insertAccountCouponInfo(List<AccountCoupon> acs) {accountCouponMapper.insertAccountCouponInfo(acs);}
xml:
<!-- 批量發放优惠券 --><insert id="insertAccountCouponInfo">INSERT INTO `account_coupon` (`member_id`, `coupon_id`, `status`, `receive_date`, `from`, `used_date`)VALUES<foreach collection="acs" item="ac" index="index" separator=",">(#{ac.memberId,jdbcType=VARCHAR}, #{ac.couponId,jdbcType=VARCHAR}, #{ac.status,jdbcType=VARCHAR}, #{ac.receiveDate,jdbcType=VARCHAR}, #{ac.from,jdbcType=VARCHAR} , #{ac.usedDate})</foreach></insert>
对应的实体如下:
public class AccountCoupon {/** 自增主键*/private String id;/** 用户id*/private String memberId;/** 优惠券id*/private String couponId;/** 状态 未领取0 待使用1 已使用2 已过期3 冻结4 已核销5*/private String status;/** 领取优惠券日期*/private String receiveDate;/** 优惠券来源发放或主动领取*/private String from;/** 使用日期*/private String usedDate;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getMemberId() {return memberId;}public void setMemberId(String memberId) {this.memberId = memberId;}public String getCouponId() {return couponId;}public void setCouponId(String couponId) {this.couponId = couponId;}public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}public String getReceiveDate() {return receiveDate;}public void setReceiveDate(String receiveDate) {this.receiveDate = receiveDate;}public String getFrom() {return from;}public void setFrom(String from) {this.from = from;}public String getUsedDate() {return usedDate;}public void setUsedDate(String usedDate) {this.usedDate = usedDate;}}
SSM框架之批量增加示例(同步请求jsp视图解析)相关推荐
- SSM框架与聚合api示例(星座配对demo)
SSM框架与聚合api示例(星座配对demo) api: 链接: 聚合数据接口. 框架:Spring SpringMVC MyBatis 效果图 输入男女星座,提交后得到各项指数 js代码 <s ...
- ssm框架访问数据库一直在转圈(请求)
ssm框架访问数据库一直在转圈(请求) 今天在写项目的时候遇到了一个问题,和大家分享一下. 先做项目的时候一直放了些假数据.把对象数组传到前台,通过j ...
- SSM框架搭建及restful风格的请求方式实例
1.开发环境搭建以及创建Maven Web项目 参看之前的博文:http://www.cnblogs.com/cainiaomahua/p/6306476.html 2.SSM整合 这次整合有2个配置 ...
- SSM框架下后台数据库传送到前端jsp文件中
SSM框架中后台存储在数据库中的数据,如何传送到前端中使用呢? 前提:SSM框架已经搭好: Category.xml中的SQL语句集已经写好 Category中的GetXX()和SetXX()方法也已 ...
- ssm框架+MySQL批量添加和删除
1.批量添加 jsp <form id="form1" action="${pageContext.request.contextPath}/order/addOr ...
- SSM框架实现插入图片显示图片到JSP界面
话不多说看图 这是自己写的更新页面,点击更新后 在你的数据库表里会出现存储的图片位置,已经报错到数据库中,如下的pic就是,下次在查询或者更新这条数据的话,图片自然就在其中了 首先创建一个Contro ...
- SSM框架CRUD操作批量删除批量追加数据(OracleMySQL数据库)
SSM框架CRUD操作Demo 1.SSM开发环境搭建详见下一章微博 2.定义起始页,基本的超链接完成请求,详见如图 由于时间关系,本人将在本博客中陆续推出高级框架阶段的系列教程,现已经发布如下几篇, ...
- ibatis spring框架升级到5.x_Java SSM框架常见面试题,良心整理,
点击上方蓝色字体,选择"置顶公众号" 优质文章,第一时间送达 文末有送书活动 文末有送书活动 文末有送书活动 一.Spring面试题 1.Spring 在ssm中起什么作用? Sp ...
- SSM框架个人学习汇总
SSM框架汇总 什么是SSM框架 SSM是Spring.SpringMVC.Mybatis三种框架的首字母简写, SSM是目前Java Web开发的最普遍和最高效框架,并且依然在不断发展与完善. SS ...
最新文章
- android 屏保_Mac视频屏保随心换!
- 入职体检——项目列表(11项)
- 追踪社保基金操盘者的足迹-补充
- linux cron源码下载,LINUX计划任务管理_AT与crontab
- plotly python_使用Plotly for Python时的基本思路
- 对当前目录及子目录下的所有源码文件及Makefile打包
- asp.net matlab,ASP.NET与MATLAB混合编译以及数据传递【更新中】
- Docker网络代理配置
- 多区域OSPF的路由重发布
- julia语言 调用 java_以编程方式/动态导入Julia中的模块
- 听说你想进玩TikTok?
- php循环的应用案例,php for循环的实例分享
- LeetCode(1108)——IP 地址无效化(JavaScript)
- Pandas里面dataframe 中loc和iloc函数的区别
- 14.深入分布式缓存:从原理到实践 --- 典型电商应用与缓存
- C语言的考试系统,C语言考试系统.doc
- 二维数组行列互调显示出来。如:123456789变成147258369。
- 蓝牙地址BD_ADDR组成
- 二十一世纪大学英语读写教程学习笔记(原文)——2 - Conversational Ballgames(对话风格与球类运动)
- 区块链技术在司法行业的服务应用
热门文章
- 【SVN】linux下svn命令参数详解(二)
- webkit内核 css,纯CSS改变webkit内核浏览器的滚动条样式
- php数据 文本_php直接调用文本文件内容
- 没有什么效果的html标签,你知道却不常用的HTML标签(一)
- 替换某个字符串_postman教程-10-如何在集合中快速查询和替换数据
- SpringBoot复习:4(@ImportResource)
- springboot mysql行锁_SpringBoot基于数据库实现简单的分布式锁
- Swing 实现聊天系统 私发与群发
- 浅谈学前教育与计算机,浅谈学前教育专业计算机教学改革与实践.doc
- 微信小程序云数据库触底分页加载,下拉无限加载,第一次请求数据随机,随机获取数据库的数据