JAVA实现自动弹出公告栏 可设置24小时内不显示

本文详细介绍了如何设计和实现一个公告页,确保用户在进入首页时能及时接收公司的重要通知,同时提供良好的用户体验,包括自动弹窗显示公告、24小时内不再显示的选项以及手动查看功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司因每次停机更新导致用户的操作不便,所以希望我能做一个公告页出来,进行分析大概自己给自己拟定了一下需求。

  1. 进入首页,如果有存在有效时间内的、状态为正常的公告则自动弹出框进行显示。
  2. 弹出框有关闭和24h内不再显示按钮,优化用户已经知晓通知后的使用体验。24小时之后公告继续弹出。
  3. 当有新的公告时,就算用户设置24小时不弹出也需要弹出以保证公告的传达性。
  4. 用户可以手动点击首页查看公告按钮进行查看。

因为各个用户之间公告的展示需要独立开来,所以把是否查看的状态储存在cookie里。

如下,在首页加载的时候调用showNoticeList方法并传参ready代表是自加载的时候,查看按钮传参click以区分。

$(document).ready(function() {
	showNoticeList('ready');
});

$('#showNoticeBtn').click(function(){
	showNoticeList("click");
});
		function showNoticeList(type){
			$.ajax({
				url : '${xxx}/manager/notice',
				type : "post",
				async : true,
				dataType : "json",
				success : function(data) {//查询当前是否有需要展示的公告
					if(type == 'click' && data.length == 0){//当是点击首页按钮,并且没有查到公告时,提示暂无公告。
						layer.alert('暂无公告!', {icon: 0});
					}
					if(data.length > 0){
						var lastDate = $.cookie('lastDate'); //获取上次查看的公告时间,进行对比来区分最近的公告是否被查看
						var showNotice = $.cookie('showNotice');//获取存在cookie里的是否查看公告的值为yes还是no
						if(data[0].createTime != lastDate){//当查询出的公告不是上一次查看的公告时,设置showNotice为yes,无论用户设置是否查看公告都进行弹出
							$.cookie('showNotice','yes');
						}
						if(data[0].createTime == lastDate && showNotice == 'no' && type == 'ready'){ //如果上次查看的公告的修改时间等于本次最新的公告修改时间 默认为用户已看过 可跳过
							return;
						}
						layer.open({
							title: '公告'
							,content: data[0].content //公告内容
							,area: ['970px', '400px']
							,btn: ['24h内不再显示', '确定']
							,btn1: function(index, layero){
								layer.alert('24h内不再自动弹出公告,您可以手动点击首页公告栏查看最新公告!', {icon: 0});
								var date = new Date();
								date.setTime(date.getTime()+24*60*60*1000);
								$.cookie('showNotice', 'no', {expires: date});//设置showNotice的值为no,失效时间为24h
							}
							,btn2: function(index, layero){
						    	
							}
						});
						$.cookie('lastDate',data[0].createTime); //设置上次查看的公告时间为 当前公告时间
				},
				error:function(data) {
					alert("公告查询出错!");
				}
			});
		}

相对应在后台管理的时候,修改公告以及新增公告的时候要保证公告时间为最新时间。

借用layui的富文本编辑器,进行新增、修改公告。

运行环境 操作系统:Windows XP。 Java平台:JDK 1.5。 Web服务器:Tomcat v 5.5.23,下载地址:http://tomcat.apache.org/。 数据库服务器:MySQL v 5.0.45,下载地址:http://www.mysql.com/。 开发平台:Eclipse SDK v 3.2.2,下载地址:http://www.eclipse.org/download/index.jsp。 Eclipse插件TomcatPlugins v 3.2.1,下载地址:http://www.eclipse-plugins.info/eclipse/index.jsp。 Eclipse插件ResourceBundleEditor v 0.7.7,下载地址:http://resourcebundleeditor.com/。 Eclipse插件MyEclipse v 5.5.1,下载地址:http://www.myeclipseide.com/ Spring 采用 2.0 版本 Hibernate 采用3.0版本 ============================ 请注意:如出现中文乱码,检查如下配置是否正确。 (1)MySql 数据库是否是utf-8 格式(在安装时选择支持多语言),数据是否正常。 (2)项目是否为utf-8格式(同时看看的源代码文件中,中文是否乱码)。 (3)JSP页面是否是utf-8 格式。 (4)在web.xml 是否配置了编码过滤器。 (5)数据源配置的url(?useUnicode=true&characterEncoding=UTF-8),具体请看项目实例。 如果上面5步都没问题,你就存在中文乱码问题。 ============================== 数据库使用的是MySQL,其版本为5.0.45 版本。 数据库的用户名及密码均为root。 使用的时候,请参考附件数据库导入一节。或将需要用到的某章的数据库目录复制到“mysql安装根目录\data”文件夹下就可以了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值