`
lihong11
  • 浏览: 456943 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

fullCalendar制作一款简单的日历日程

阅读更多
//说什么都没有例子直观,这是个比较简单的日历日程,附件为效果图、代码效果和需要引用的js与css文件
package com.kinth.oa.daily.action;

import java.io.IOException;
import java.net.URLDecoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.gdcn.bpaf.common.base.BaseStrutsAction;
import com.gdcn.bpaf.common.helper.BeanUtil;
import com.gdcn.bpaf.common.helper.WebHelper;
import com.gdcn.bpaf.common.taglib.SplitPage;
import com.gdcn.bpaf.security.model.LogonVO;
import com.kinth.common.helper.GUIDHelper;
import com.kinth.common.helper.PagerList;
import com.kinth.oa.daily.action.form.PerScheduleCategoryForm;
import com.kinth.oa.daily.action.form.PerScheduleForm;
import com.kinth.oa.daily.model.PerSchedule;
import com.kinth.oa.daily.model.PerScheduleCategory;
import com.kinth.oa.daily.service.IPerScheduleService;
import com.kinth.oa.official.helper.JsonDateValueProcessor;
/**
 * <p>Title 个人日程action</p>
 * <p>Copyright: Copyright (c) 2012</p>
 * <p>@date : 2012-10-1
 */
 
public class PerScheduleAction extends BaseStrutsAction{
	private IPerScheduleService perscheduleService;
    	 
	/**
	 * 以月历模式查看个人日程
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward toJson(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException {
    
		response.setCharacterEncoding("utf-8");
		String userId=WebHelper.getLogon(request).getLogonid();
		String userName=WebHelper.getLogon(request).getUsername();
     	String hql = "FROM PerSchedule a where a.userId = "+"'"+userId+"'";
     	List<PerSchedule> list=perscheduleService.queryPerSchedules(hql);
		//移除同一天的日程事件
		for (int i=0;i<list.size();i++) {
            if(request.getParameter("index")!=null){
                  for (int j = list.size() - 1; j > i; j--) {     
                     if (list.get(j).getStartTime().toString().substring(0, 10).equals(list.get(i).getStartTime().toString().substring(0, 10))) {
            	              list.remove(j);
                          }
                    }
             }
			SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String str = list.get(i).getStartTime().toString().substring(0, 19);
			try {

				list.get(i).setStartTime(sf.parse(str));
				 
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
		JSONArray json = JSONArray.fromObject(list);
		String resultStr = json.toString();
		try {
			response.getWriter().write(resultStr);
			response.getWriter().flush();
			response.getWriter().close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
		
	@SuppressWarnings("unchecked")
	protected void writeJSON(HttpServletRequest request,HttpServletResponse response,Map map)throws Exception{
		//获得json的配置  
        JsonConfig config=new JsonConfig();  
        //设置javabean中日期转换时的格式
        config.registerJsonValueProcessor(Date.class,
        new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss"));
		Object o = JSONArray.fromObject(map,config);
		String result = o==null?"":o.toString();
		response.setContentType("application/json;charset=UTF-8");
	    response.setCharacterEncoding("utf-8");
	    response.setHeader("Charset", "utf-8");
	    response.setHeader("Cache-Control", "no-cache");
		response.getWriter().print(result);
	}
	public IPerScheduleService getPerscheduleService() {

		return perscheduleService;
	}

	public void setPerscheduleService(IPerScheduleService perscheduleService) {
		this.perscheduleService = perscheduleService;
	}
}

 

<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@ page isELIgnored="false"%>
<link href="<%=baseURL%>/frame/css/style.css" rel="stylesheet" type="text/css" />

<html>

<head>
<title>日常业务-个人日程</title>
	<title>日程</title>
	<link type="text/css" rel="stylesheet" href="<%=baseURL %>/kinth/officialCommon/css/jquery.ui.all.css"/>
<link rel='stylesheet' href='<%=baseURL%>/frame/css/fullcalendar.css'  />
<link rel='stylesheet' href='<%=baseURL%>/frame/css/fullcalendar.print.css'  media='print' />
<script type="text/javascript" src="<%=baseURL %>/kinth/officialCommon/js/jquery.js"></script>
<script type="text/javascript" src="<%=baseURL %>/kinth/officialCommon/js/jquery-ui.custom.js"></script>
<script type="text/javascript" src="<%=baseURL%>/frame/JS/fullcalendar.min.js"></script>
	<style type='text/css'>
		body {
		margin-left: 200px;
		text-align: center;
		font-size: 18px;
		font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
		 
		}
		#calendar {
		width: 900px;
		height: 800px;
		margin: 0 auto;
		}
	</style>
<script type="text/javascript">
    $(document).ready(function() {
 
       var date = new Date();
       var d = date.getDate();
       var m = date.getMonth();
       var y = date.getFullYear();
       $('#calendar').fullCalendar({
           header: {
              left: 'prev,next today',
              center: 'title',
              right: 'month,agendaWeek,agendaDay'
           },
          theme:true,
          monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],  
          monthNamesShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],  
          dayNames: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],  
          dayNamesShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],  
          today: ["今天"],  
          buttonText: {  
          today: '今天',  
          month: '月',  
          week: '周',  
          day: '日'  
          },  
           editable: false,
           events:function(start, end, callback) { //在日历中的天显示相应日程
           var urlR = baseURL+"/toJsonForCalandar.do";//后台查询日程,返回json格式
           $.ajax({  
            url: urlR,
            cache:false,  
            success:function(data) {  
                var events = [];  
                var info = eval(data);  
                for (var i = 0; i < info.length; i++) {
                   var ev = info[i];  
                    var title = ev.topic; 
                    var x; 
                    if(ev.allDay=='true'){
                      x=true;
                    }else{
                        x=false;
                    }
                   var evtstart=formatJson(ev.startTime.time);
                     var evtend=formatJson(ev.endTime.time);
                      events.push({   //设置在日历中的天显示相应日程的样式
                        title:title,  
                        start:evtstart,  
                        end:evtend,  
                        backgroundColor:'#34c9df', 
                        allDay:x
                   });  
                }  
                callback(events);  
              }
          })  
         },eventClick: function(calEvent, jsEvent, view) {   //点击日程事件
				window.location.href=baseURL+"/kinth/daily/perschedule/perscheduleByCalMain.jsp";
			},dayClick:function(date, allDay, jsEvent, view){	//点击天事件
			  //$(this).css({color: "red", background: "blue" });
         	  //$(this).removeClass("ui-widget-content");
         	  window.location.href=baseURL+"/listCategory.do?appType=HDOA_GRRC";
         }   
       });
   });
 </script>
 
 <script type="text/javascript">
 //格式化时间函数,此函数为了处理json格式中带date类型数据的
function formatJson(time)
{
var jsonDate=new Date(parseInt(time));
var result = jsonDate.format("yyyy-MM-dd hh:mm:ss");
return result;
}

Date.prototype.format = function(format){
    var o =
    {
        "M+" : this.getMonth()+1, //month
        "d+" : this.getDate(),    //day
        "h+" : this.getHours(),   //hour
        "m+" : this.getMinutes(), //minute
        "s+" : this.getSeconds(), //second
        "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
        "S" : this.getMilliseconds() //millisecond
    }
    if(/(y+)/.test(format))
    format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(var k in o)
    if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
    return format;
}
 
 </script>
</head>

<body style="margin-left: 40px;margin-top: 0px;margin-right: 4px;margin-bottom: 4px;">
 <div id="content" >
 <div id="calendar" style="margin:3em 0;font-size:13px" class="fc">
 </div>
 </div>
 </body>
</html>

  

  • 大小: 84.6 KB
  • 大小: 22.5 KB
分享到:
评论
2 楼 XDKS59 2016-10-04  
博主  我是用ssm写的不知道后台该怎么写 能帮帮我吗
1 楼 rain_2372 2014-07-11  
谢谢 分享。

相关推荐

    在Vue项目中用fullcalendar制作日程表的示例代码

    主要介绍了在Vue项目中用fullcalendar制作日程表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    fullCalendar 制作的仿谷歌日历demo java oracle

    全历(FullCalendar)是一款流行的JavaScript库,用于创建交互式日历应用。在这个"全历制作的仿谷歌日历demo"项目中,开发者利用Java和Oracle数据库构建了一个类似谷歌日历的功能,允许用户查看、添加、修改和删除...

    日程功能 每日工作安排 日历 插件

    在IT行业中,日程功能是许多应用程序和操作系统不可或缺的一部分,它帮助用户有效地管理时间,规划每日的工作安排。日历插件则进一步提升了这种体验,通过集成到浏览器或桌面环境中,为用户提供直观、便捷的方式来...

    周日历js插件,weeklyCalendar,只显示一周的日期

    作为一款基于JavaScript的日历插件,weeklyCalendar充分利用了JavaScript的动态性和灵活性。它可能采用了事件监听、DOM操作等技术来实现日历的动态更新和提醒的交互功能。同时,考虑到CSS文件的存在,我们可以推测...

    javascript 日程记录效果

    FullCalendar是一款基于JQuery的日历插件,它提供了一个全功能的交互式日历视图,支持日、周、月视图,以及拖放事件、多日事件、时间分块等高级特性。这个版本是1.4.3,虽然可能相对较旧,但仍然能够满足基本的日程...

    vue实现一个炫酷的日历组件

    公司业务新开了一个商家管理微信H5移动端项目,日历控件是商家管理员查看通过日程来筛选获取某日用户的订单等数据。 如图: 假设今天为2018-09-02 90天前: 90天后; 产品需求: 展示当前日期(服务器时间)...

    js,jquery各类日程表,时间控件

    - FullCalendar:这是一个功能强大的日历组件,支持多语言、多时区,提供丰富的API和自定义选项。 - Bootstrap Datepicker:基于Bootstrap框架的日期选择器,界面简洁,易用性高。 - Pikaday:轻量级的日期选择器...

    PHP开发制作一个简单的活动日程表Calendar

    最后,为了让日程表具有良好的用户体验,可以考虑使用Bootstrap框架来美化界面,或者使用fullCalendar之类的JavaScript库,它提供了一个功能丰富的日历组件,可以直接与后端PHP接口进行交互。 总的来说,开发一个...

    JavaScript编写的三个漂亮日历

    1. 单月视图:显示一个月的日历,常用于简单的日期选择。 2. 双月视图:同时显示两个月,便于比较相邻月份的日期。 3. 年视图:显示一年的日历,适合查看全年的规划。 4. 周视图:按周划分,适合时间管理。 五、...

    Jquery日历

    jQuery,作为一款强大的JavaScript库,为开发者提供了丰富的插件来简化这一过程。本篇将深入探讨jQuery日历插件的使用,帮助您实现功能完善的日历界面。 **1. jQuery基础** 首先,我们需要了解jQuery的基本用法。...

    jquery插件应用

    jQuery 是一款非常流行的JavaScript库,它极大地简化了DOM操作、事件处理、动画设计和Ajax交互。jQuery插件是基于jQuery核心功能的扩展,为开发者提供了更多的功能和工具,使得网页开发更为高效和便捷。在本主题中,...

    网页形式月历模版

    例如,FullCalendar是一个流行的JavaScript日历库,提供丰富的功能和可定制性。 5. 数据存储与同步:如果需要保存用户的日程或设置,可以将数据存储在本地存储(Local Storage)或浏览器的会话存储(Session ...

    jquery热门插件

    9. **FullCalendar**:全功能的日历插件,支持事件添加、拖放和日程管理。对于需要展示日程信息的网站来说,这是一个非常实用的工具。 10. **Chosen**:Chosen插件优化了HTML select元素,提供了可搜索、多选和下拉...

    jquery时间插件的三种模式

    而FullCalendar是一个全功能的日历插件,支持日程管理、拖放操作以及多语言支持。 在使用这些插件时,开发者需要注意兼容性问题,确保插件在不同浏览器上都能正常工作。同时,为了优化性能,应当合理地管理DOM操作...

    50个开发者最喜欢使用的jQuery插件

    9. **FullCalendar**:全功能的日历插件,可展示日程、事件,并支持拖放操作。 10. **Magnific Popup**:轻量级的弹出窗口插件,支持图片、视频等多种内容类型。 11. **Parallax**:视差滚动效果插件,为背景元素...

    24款非常有用的 jQuery 插件分享

    5. **FullCalendar**:此插件提供了一个日历视图,具有拖放功能,适合需要日程管理功能的网站。 6. **#grid**:在网页中插入布局网格的小工具,有助于创建结构化和响应式的页面布局。 7. **jQuery Autocomplete**...

Global site tag (gtag.js) - Google Analytics