grails 學習(一)

 def list = {
  try {
   //通過傳參params.domain,反射得到對應的domain
   def domain = extUiService.getDomainClazz(params.domain)
   
   //檢證是否反射對應的domain
   assert !!domain, "Domain Class with name ${params.domain} was not found!"

   //獲取開始讀取數據的上限基數
   def max = params.limit ? params.limit : 10
   
   //獲取開始讀取數據的下限
   def offset = params.start ? params.start : 0
   
   //獲取排序字段
   def orderBy = params.sort ? params.sort : 'id'
     
   //獲取排序方式
   def ascOrdesc = params.dir ? params.dir.toLowerCase() : 'asc'
     
   //獲取搜索字段
   def likeBy = params.likeBy
   
   //獲取搜索字段對應的內容
   def likeValue = params.likeValue
   
   //獲取搜索得到的所有數據
   def totals = domain.withCriteria  {
    if(likeValue)
     like(likeBy, "%" + likeValue + "%")
   }
   
   //獲取分頁數據
   def items = domain.withCriteria  {
    firstResult(Integer.valueOf(offset))
    maxResults(Integer.valueOf(max))
    order(orderBy, ascOrdesc)
    if(likeValue)
     like(likeBy, "%" + likeValue + "%")
   }
   
   //構造返回數據結構
   def result = [
    total: totals.size(),
    items: items
   ]

   //轉換爲json返回數據
   render (result as JSON).toString()
   
  } catch(Throwable ex) {
   onException(ex); return false
  }
  
  //當有異常時
  return false;
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章