`
悠悠晃晃
  • 浏览: 39311 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

Java生成ics文件

阅读更多
java生成ICS文件,这玩意好象是个什么日程表类的东西。可以导入到outlook里面用。
public void exportActivityDates(HttpServletRequest request, HttpServletResponse response)
			throws Exception {		
	MenuBean menuBean = (MenuBean) request.getSession().getAttribute(SystemConstants.JE_MENU_BEAN);
	Vector<ActivityBean> atyBeans = (Vector<ActivityBean>) menuBean.getLearningActivities();
 
	StringBuffer strActivityDates = new StringBuffer();
	strActivityDates.append("BEGIN:VCALENDAR\n");
	strActivityDates.append("PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN\n");
	strActivityDates.append("VERSION:2.0\n");
	strActivityDates.append("METHOD:PUBLISH\n");
	ActivityBean atyBean = null;
	for (int i = 0; i < atyBeans.size(); i++) {
		atyBean = atyBeans.get(i);
		if (atyBean.isIsShow()) {
			strActivityDates.append("BEGIN:VEVENT\n");
			String strDateTime = atyBean.getStartDateTime().replaceAll("-", "");
			strActivityDates.append("DTSTART:").append(strDateTime).append("\n");
			String endDateTime = atyBean.getEndDateTime().replaceAll("-", "");
			strActivityDates.append("DTEND:").append(endDateTime).append("\n");
			strActivityDates.append("LOCATION:").append(atyBean.getAtyName()).append("\n");
			strActivityDates.append("TRANSP:OPAQUE\n");
			strActivityDates.append("SEQUENCE:1\n");
			strActivityDates.append("UID:8BB34ECC-1363-497B-B7CB-A268FD46CC7D\n");
			String strNow = ISO8601Date.dateToString(new Date()).replaceAll("-", "");
			strActivityDates.append("DTSTAMP:").append(strNow).append("\n");
			strActivityDates.append("DESCRIPTION:").append(atyBean.getAtyName()).append("\n");
			strActivityDates.append("SUMMARY:").append(atyBean.getAtyName()).append("\n");
			strActivityDates.append("END:VEVENT\n");
		}
	}
	strActivityDates.append("END:VCALENDAR");
	OutputStream outputstream = response.getOutputStream();
 
	response.reset();
	response.setHeader("content-disposition", "attachment;filename=activityDates.ics");
	response.setContentType("text/calendar");
 
	byte[] bytes = strActivityDates.toString().getBytes("UTF-8");
	for (int i = 0; i < bytes.length; i++)
		outputstream.write(bytes[i]);
	outputstream.close();
	response.flushBuffer();
	response.getWriter();
}
0
0
分享到:
评论
1 楼 cgs1999 2017-01-09  
这种字符串的方式不是很灵活,建议调整为模板的方式,如freemaker

相关推荐

Global site tag (gtag.js) - Google Analytics