WEB开发网
开发学院软件开发Java 使用 Grails 与 jQuery 创建 Web Calendar 阅读

使用 Grails 与 jQuery 创建 Web Calendar

 2010-06-23 00:00:00 来源:WEB开发网   
核心提示: 继续创建 Controller 和 Views,在 MyCalendar 目录下运行命令 grails generate-all CalendarEvent,使用 Grails 与 jQuery 创建 Web Calendar(4),Grails 将会产生如下 controller 文件,gra

继续创建 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 
 } 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Grails jQuery

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接