使用 Grails 与 jQuery 创建 Web Calendar
2010-06-23 00:00:00 来源:WEB开发网继续创建 Controller 和 Views,在 MyCalendar 目录下运行命令 grails generate-all CalendarEvent。Grails 将会产生如下 controller 文件。
grails-app\controllers\CalendarEventController.groovy
和 views 文件
grails-app\views\calendarEvent\create.gsp
grails-app\views\calendarEvent\edit.gsp
grails-app\views\calendarEvent\list.gsp
grails-app\views\calendarEvent\show.gsp
运行命令 grails run-app,并打开浏览器访问 http://localhost:8080/MyCalendar。
在 Grails 生成的 Web 应用中,用户可以创建、编辑、查看 CalendarEvent,完成 CRUD 的操作。
通过上述步骤可以看到,使用 Grails 创建一个完整可运行的 Web 程序非常的方便。对于示例程序来说,上述步骤基本实现了程序的持久层、业务逻辑层和展现层,为业务对象 CalendarEvent 建立了 CRUD 的基本操作。在接下来的步骤中,本文将基于刚才生成的代码,添加更多日程管理相关的服务。
添加日程查看和管理服务
在 Grails 项目中 , 修改 Grails Controller 对象 grails-app/controllers/CalendarEventController.groovy 并添加下列服务。
查看日程服务
首先为 CalendarEventController.groovy 添加 listAsJson 方法。该方法将为 FullCalendar 插件提供日程数据查询服务,以 JSON 数据格式返回日程查询结果。由于 Grails 提供了从 java 到 JSON 数据转换的方法 render <java object> as JSON,大大简化了开发任务。代码清单如下:
清单 2. 查看日程服务方法
def listAsJson = {
def fcal = Calendar.getInstance()
if(params.start) fcal.setTime(new Date(Long.parseLong(params.start)))
def lcal = Calendar.getInstance()
if(params.end) lcal.setTime(new Date(Long.parseLong(params.end)))
def listOfEvents = CalendarEvent.findAll("from CalendarEvent as \
ce where ce.startDate>:startDate AND ce.endDate<:endDate", \
[startDate: fcal.getTime(), endDate: lcal.getTime()])
def listOfJsEvents = []
listOfEvents.each{ event->
def jsEvent = [:]
jsEvent.id = event.id
jsEvent.title = event.description?.length()>15? \
event.description?.substring(0, 14)+"..." : event.description
jsEvent.description = event.description
jsEvent.start = event.startDate
jsEvent.end = event.endDate
jsEvent.showTime = true
jsEvent.url = "show?id=${event.id}"
jsEvent.className = "scheduled"
jsEvent.allDay = event.allDay
listOfJsEvents.add(jsEvent)
}
render listOfJsEvents as JSON
}
更多精彩
赞助商链接