javascript - 如何从服务器数据创建 "add to calendar"iCal 链接(.ics 文件)并将其发送回我的 webApp?

标签 javascript jquery jersey jax-rs

我正在制作一些东西的原型(prototype),我希望有人能帮助我。我正在尝试创建一个将事件添加到日历链接,该链接将下载并打开 iCal 文件 (.ics),以便他们可以将其添加到日历中。

我们使用 Jax-RS 和 Jersey 以及 tomcat 作为容器,并且我有 iCal4j 包。客户端是 jQuery/backbone。

  1. 我不确定返回数据的正确方法是什么。我是否应该创建一个 ics 文件并将其存储在返回之前的某个位置,或者从 iCal4j 发回 CalendarOutputter 文件流?
  2. 如果我创建了 ics 文件,我应该将其存储在哪里? WEB-INF 文件夹?怎么办?
  3. 如果返回文件流,Jax-RX 的正确@Produces(?) 是什么?

谢谢, 雷

最佳答案

您不应创建文件来返回数据。您应该能够直接返回您的 Calendar 对象。尝试这样的事情:

@GET
@Path("calendar")
@Produces("text/calendar")
public Response generateCalendar() {
  Calendar calendar = new Calendar();
  // Generate your calendar here
  ResponseBuilder builder = Response.ok();
  builder.header("content-disposition", "attachment;filename=calendar.ics");
  builder.entity(calendar.toString());
  return builder.build();
}

关于javascript - 如何从服务器数据创建 "add to calendar"iCal 链接(.ics 文件)并将其发送回我的 webApp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993435/

相关文章:

JavaScript 表达式评估错误

javascript - 重置对象的键并保留值

javascript - jQuery ajax 缓存响应

javascript - 禁用 anchor 标记时,文本在 IE 中变为灰色

java - 使用 Jersey 枚举资源

java - 如何在 Jersey 客户端的 DELETE 请求中发送包含数据?

javascript - 如何在使用 Dragtable UI 时动态地将列添加到表格中?

javascript - API 路由在不应发生的情况下发生错误处理

jquery - 可以在 onchange 事件上设置 setTimeout 吗?

java - JAXB 和 Jersey 列表解析?