CGB2005 0807 JAVA05总结

																																																																																																																																																																																																																																																																																												今天主讲 Ajax

**

02-CGB-Ajax 技术应用

**

复习回看 模态框的使用
js比较薄弱
在这里插入图片描述
如上 比如这部分
加粗样式

在这里插入图片描述
在这里插入图片描述

如下 是BOM窗口对象
在这里插入图片描述
在这里插入图片描述
**

js最薄弱 建议在浏览器练习

** confirm方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
跳转练习
在这里插入图片描述
新疑问:怎么分辨js,jQuery和jsp代码 与其实现应用
在这里插入图片描述
在这里插入图片描述

插入小点

在这里插入图片描述
**

延申说法 client客户端发送请求 (客户端层面)是client前端页面层

**

**

重要知识点补回来 提要:冒泡排序和正则表达式(可能需要用到js)

**
在这里插入图片描述
在这里插入图片描述
用于初始化
在这里插入图片描述
在这里插入图片描述
目的 为了规范日期
在这里插入图片描述
引入
在这里插入图片描述
在这里插入图片描述
自己学着加入一个新的js功能 下拉 日期datetimepicker

在这里插入图片描述
在这里插入图片描述
可能存在的问题
在这里插入图片描述

今晚学着自己去加入 失败了 再看码云上的源码 试试脱离老师写代码

新要求

结束

现在看Hi现场源码

新功能

错过了下 只能核对码云源码了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现state状态超时变成0 变成失效

1.dao层
数据层

在这里插入图片描述
2.Service业务逻辑层在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

**

自己开始导包

**
在这里插入图片描述

添加state状态 过时变成0 失效

1.controller层 html 客户端层面
controller无改动

html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="/datepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen">
</head>
<body>
	<div class="container">
		<h1>The Activity Page</h1>
		<!-- Button trigger modal -->
		<button type="button" class="btn btn-primary btn-lg"
			data-toggle="modal" data-target="#myModal">创建活动</button>
		
		<table class="table">
			<thead>
				<tr>
					<th>title</th>
					<th>Category</th>
					<th>StartTime</th>
					<th>EndTime</th>
					<th>State</th>
					<th>Operation</th>
				</tr>
			</thead>
			<tbody>
				<tr th:each="aty:${list}">
					<td th:text="${aty.title}"></td>
					<td th:text="${aty.category}"></td>
					<td th:text="${#dates.format(aty.startTime, 'yyyy/MM/dd HH:mm')}"></td>
					<td th:text="${#dates.format(aty.endTime, 'yyyy/MM/dd HH:mm')}"></td>
					<td th:text="${aty.state==1?'有效':'无效'}"></td>
					<td><button type="button" class="btn btn-danger btn-sm" th:onclick="doDeleteObject([[${aty.id}]])">delete</button></td>
				</tr>
			</tbody>
		</table>
	</div>
	<!-- Modal(模态框) -->
	<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
			aria-labelledby="myModalLabel">
			<div class="modal-dialog" role="document">
				<div class="modal-content">
					<!-- 标题部分 -->
					<div class="modal-header">
						<button type="button" class="close" data-dismiss="modal"
							aria-label="Close">
							<span aria-hidden="true">&times;</span>
						</button>
						<h4 class="modal-title" id="myModalLabel">创建活动</h4>
					</div>
					<!-- Body部分 -->
					<div class="modal-body">
						<form class="form-horizontal" th:action="@{/activity/doSaveActivity}" method="post">
							<div class="form-group">
								<label for="titleId" class="col-sm-2 control-label">标题</label>
								<div class="col-sm-10">
									<input type="text" class="form-control"  name="title" id="titleId"
										placeholder="title">
								</div>
							</div>
							<div class="form-group">
								<label for="categoryId" class="col-sm-2 control-label">类型</label>
								<div class="col-sm-10">
							   	   <select id="categoryId" name="category" class="form-control">
							   	       <option value="教育培训">教育培训</option>
							   	       <option value="企业活动">企业活动</option>
							   	       <option value="交友活动">交友活动</option>
							   	   </select>
								</div>
							</div>
							<div class="form-group" >
								<label for="startTimeId" class="col-sm-2 control-label">开始时间</label>
								<div class="col-sm-10">
									<input type="text" class="form-control form_datetime"  name="startTime" id="startTimeId"
										placeholder="start time">
								</div>
							</div>
							<div class="form-group">
								<label for="endTimeId" class="col-sm-2 control-label">结束时间</label>
								<div class="col-sm-10">
									<input type="text" class="form-control form_datetime"  name="endTime" id="endTimeId"
										placeholder="end time">
								</div>
							</div>
							<div class="form-group">
								<label for="remarkId" class="col-sm-2 control-label">备注</label>
								<div class="col-sm-10">
									<textarea type="text" class="form-control"  rows="5" name="remark" id="remarkId">
								    </textarea>
								</div>
							</div>
					</form>
					</div>
					<!-- 按钮部分 -->
					<div class="modal-footer">
						<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
						<button type="button" class="btn btn-primary" onclick="doSaveObject()">Save Changes</button>
					</div>
				</div>
			</div>
     </div>
    
	<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
	<script src="/jquery/jquery.min.js"></script>
	<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
	<script src="/bootstrap/js/bootstrap.min.js"></script>
	<script type="text/javascript" src="/datepicker/js/bootstrap-datetimepicker.min.js" charset="UTF-8"></script>
	<script type="text/javascript" src="/datepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
	<script type="text/javascript">
	  //datetimepicker函数由bootstrap-datetimepicker.min.js定义,用于初始化日期控件
	  $('.form_datetime').datetimepicker({//这里的form_datetime为input标签中的class选择器
		  language: "zh-CN",
		  format: "yyyy/mm/dd hh:ii",
		  autoclose: true
	  })
	   function doDeleteObject(id){
		   if(!confirm("确定删除吗?"))return;
		   location.href="/activity/doDeleteObject/"+id;//restful
	   }
	   function doSaveObject(){
		 //表单校验(可考虑使用正则表达式)
		 //提交表单
		 //$(form)基于标签名(例如这里的标签名form)称获取表单对象
		 //submit为jquery中的一个对象函数,通过此函数可以提交表单.
		  $("form").submit();//提交表单
	   }
	</script>
	
</body>
</html>

2.dao层与mapper
在这里插入图片描述

@Update("update tb_activity set state=0 where id=#{id}")
	 int updateState(Long id);

在这里插入图片描述

 <insert id="insertObject"
             parameterType="com.cy.pj.activity.pojo.Activity"
             useGeneratedKeys="true"
             keyProperty="id">
         insert into tb_activity
         (title,category,startTime,endTime,remark,state,createdUser,createdTime) 
         values 
         (#{title},#{category},#{startTime},#{endTime},#{remark},#{state},#{createdUser},now())
     </insert>

3.service层
接口无变动

在这里插入图片描述
doSaveActivity
在这里插入图片描述

@Override
	public int saveActivity(Activity entity) {
		int rows=activityDao.insertObject(entity);
		System.out.println("saveActivity.threadName="+Thread.currentThread().getName());
		//??????
		//开启活动倒计时(活动到了结束时间应该将其状态修改为0)
		//方案:(自己尝试)
		//1)Java 官方:
		//1.1)Timer
		//1.2)ScheduledExecutorService
		//2)借助第三方的任务调度框架(任务调度框架,quartz)
		//方案1:Timer应用
		//1.1构建Timer对象
		Timer timer=new Timer();//此对象可以负责去执行一些任务(这个对象内置一个线程和一个任务队列)
		//1.2启动线程执行任务
		timer.schedule(new TimerTask() {//TimerTask为任务
			@Override
			public void run() {//一旦调用此任务的线程获得了CPU就会执行这个任务的run方法
				System.out.println("updateState.threadName="+Thread.currentThread().getName());
				System.out.println("执行任务...");
				activityDao.updateState(entity.getId());
			}
		}, entity.getEndTime());//按指定时间执行任务.
		return rows;
	}

4.html页面看效果
pojo
activity.java
修正日期格式
在这里插入图片描述

@DateTimeFormat(pattern = "yyyy-MM-dd")

这里不对 先注释了
修改
在这里插入图片描述

//Spring MVC基于@DateTimeFormat指定的日期格式接收客户端提交数据,假如没有指定默认为yyyy/MM/dd
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
	private Date startTime;
	/** 活动结束时间 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")

页面效果
在这里插入图片描述
在这里插入图片描述
如上两图 以实现 晚上自己对代码复刻一遍

在这里插入图片描述

自己操作一下
在这里插入图片描述
在这里插入图片描述
有注解后 由系统底层去赋予相应的东西
在这里插入图片描述

Ajax

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Ajax入门案列在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
总结 自己回看
在这里插入图片描述
**

开始创建项目

**AJAX相关
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加js函数
在这里插入图片描述

步骤
在这里插入图片描述
在这里插入图片描述
2.创建controller层
在这里插入图片描述

在这里插入图片描述
错误示范
在这里插入图片描述

对应回客户端层
在这里插入图片描述

在这里插入图片描述
3.页面 客户端层面实现
在这里插入图片描述

在这里插入图片描述

插入小点 span
在这里插入图片描述
4.再次深入拓展
原理
在这里插入图片描述
客户端层在这里插入图片描述
controller层
在这里插入图片描述
第三步 建立连接处的同步与异步处理
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
实现了按钮与span框的异步更新


controller层的模拟休眠处理


3秒耗时操作
在这里插入图片描述
(1)异步处理 true
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不同线程 看谁先打印 console在主线程
在这里插入图片描述
在这里插入图片描述

如上图 凸显了异步操作
(2)同步处理 false在这里插入图片描述
在这里插入图片描述
结果
在这里插入图片描述
在这里插入图片描述

上面是同步和异步的点!!!
**

Activity项目的点 回归复习

**
自己得敲一遍
在这里插入图片描述

在这里插入图片描述

下拉时间表
在这里插入图片描述

如上 提到外面去 方便调用

明天准备讲
在这里插入图片描述
下节课讲0,1,2,3,4 对应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
现场大屏幕具有开幕墙、闭幕墙、消息墙、抽奖、签到、嘉宾展示、抢红包功能,利用开幕墙对整个活动的展示介绍、也适合活动进行中的间歇时间、消息墙可以再等待和互动的时候,让员工发布消息,是/一款非常流行的微信大屏幕系统。 重要说明:付费报名模式目前只支持开通微信支付的服务号。 1、本模块支持开幕墙、闭幕墙、消息墙、二维码扫描墙、3D签到墙(支持logo签到和文字签到)(4种展示效果)、多奖品切换现场抽奖、酷炫互动疯狂抢红包、嘉宾墙等,后续将再新增多个墙,敬请期待; 2、每个大屏幕都支持自定义背景、和背景有音乐功能,购买的客户将免费赠送背景素材包; 3、现场抽奖奖品支持同时设置多个奖品,并且可以设置每个奖品的顺序,方便根据奖品价值安排抽奖顺序,奖品支持实物和红包(); 4、抢红包奖品支持实物、微信卡券、红包等,支持自定义奖品数量、概率等; 5、抢红包支持设置每个人最多中奖次数、超过了就不会再中奖了; 6、抢红包活动支持设置赞助商广告,粉丝的中奖提示页面会弹出赞助广告; 7、抢红包活动支持多波活动举办,支持一波活动结束后直接重置,之前中奖的数据不会被清空,后台和中奖者手机端都可以看到并且兑换红包。 8、红包奖品支持直接发送和提现两种模式,方便做大额红包奖励。 9、3D签到墙支持4种展示方式,前后台都可以自由切换,手机端签到可以支持是/否需要填写个人信息,个人信息支持填写姓名、手机、公司/职位等; 10、大屏幕支持设置密码才能访问的功能; 11、消息墙支持开启是/否需要消息审核的功能,支持同时发生消息和图片的功能,并且支持图片再显示的时候是/否自动放大功能。 12、后台支持自定义活动流程说明,方便参与者再手机端直接查看活动流程。 13、支持开启和关闭强制关注才能参与活动的功能; 14、自带LBS限制地区功能,可以设置参与人的地区范围; 15、本模块只支持认证服务号使用(使用红包功能必须开通微信支付),其他非认证服务号的可以借用权限(借用权限的账号无法使用卡券功能); 运营方案推荐: 【公司年会方案】 使用开幕墙、闭幕墙、消息墙、抽奖、签到、嘉宾展示、抢红包功能,利用开幕墙对整个活动的展示介绍、也适合活动进行中的间歇时间、消息墙可以再等待和互动的时候,让员工发布消息。签到墙采用水晶球模式。 整个年会设置多波抢红包活动,利用抢红包重置功能,可以举办多波互动抢红包,既能引爆现场,又能回馈员工福利。 现场抽奖功能可以把奖品依次从低到高设置,把价值最高的放最后面。 【本地自媒体现场活动】 使用开幕墙、闭幕强、抢红包功能,开幕墙和闭幕墙可以做成赞助商广告墙,利用抢红包的高互动功能,并且可以举办多波的功能,快速引爆活动现场。 适用范围 微信墙、超级大屏幕、微信大屏幕、现场大屏幕 1、本地自媒体大号,拉商家赞助; 2、公司年会、学校、企事业单位等等; 3、微信运营服务提供商; 4、婚礼策划机构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值