events: [
{
title: 'All Day Event',
start: new Date(2010,2,13)
},
{
title: 'Long Event',
start: new Date(y, m, d-5),
end: new Date(y, m, d-2)
}
]从数据库中获取数据后,如何在JSP中制作这个数组?
发布于 2010-02-14 22:26:51
您的问题很模糊,但一般来说,最简单的做法是将数据作为Bean或Map绑定到请求中作为属性或其他内容;这取决于您使用的是什么框架。完成此操作后,您只需通过JSTL EL表达式引用字段:
events: [
<c:forEach var='event' items='${myData.events}'>
{ title: '${event.title}', start: new Date(${event.timestamp}) },
</c:forEach>
null
];尾随的"null“是为IE添加一些东西;您也可以编写循环代码,以避免尾随逗号。
在我的应用程序中,我总是为Javascript字符串常量语法编写一个"jsQuote“EL函数,它的作用类似于"fn:escapeXml”。像这样直接将事件标题之类的东西转储到Javascript源代码中是很危险的,但是标准JSP库中没有为Javascript执行字符串转义的函数。然而,编写一个这样的代码很容易。因此,在我的代码中,这一行将如下所示:
{title: '${xyz:jsQuote(event.title)}', start: new Date(${event.timestamp}) },如果数据中是"long“或"Long”,您不必担心“时间戳”。
同样,所有这些都完全取决于您的数据的外观。
发布于 2010-02-15 11:41:31
Event,如下所示公共类事件{私有字符串标题;私有日期开始;私有日期结束;//添加/生成getter和setter。}
Servlet,它使用Google Gson将其转换为JSON。protected void doGet(HttpServletRequest request,HttpServletResponse response)抛出ServletException,IOexception { List events = eventDAO.list();String json = new Gson().toJson(events);response.setContentType(“应用程序/json”);response.setCharacterEncoding("UTF-8");response.getWriter().write(json);}
例如,使用$.getJSON函数将其映射到/jsonGetEvents.
url-pattern:$.getJSON('jsonGetEvents',function(events) { // events是一个JSON字符串。用它做你该做的事。下面的示例循环到它上面。$.each(事件,函数(索引,事件){ var title = event.title;var start = event.start;var end = event.end;});});
https://stackoverflow.com/questions/2261357
复制相似问题