Не удается распечатать содержимое массива объектов в Grails

#javascript #grails #groovy #gsp

#javascript #grails #groovy #gsp

Вопрос:

КЛАСС ДОМЕНА

 package marchmock2

class Pgtyp {
   Date date_hour
   String mv
   String pagetype
   Integer visits
   Integer visits_ly
   Integer visits_lw
   String time_period
   String platform
   String device
   String browser

   static mapping = {
      table "pgtyp"
      version false 
      date_hour column: "date_hour"
      mv column: "mv"
      pagetype column: "pagetype"
      visits column: "visits"
      visits_ly column:"visits_ly"
      visits_lw column:"visits_lw"
      time_period column:"time_period"
      platform column:"platform"
      device column:"device"
      browser column:"browser"
   }

   static constraints = {}
}
  

КОНТРОЛЛЕР

 package marchmock2
import grails.converters.*
import groovy.sql.Sql   

class PgtypController {

   def ajaxGetMv = {
      def pgtyp = Pgtyp.executeQuery("select p.visits from Pgtyp p where p.mv = ?",["params.id"])            
      render pgtyp as JSON
   }

   def index() { 
   }
} 
  

GSP

 <html>
   <head>
      <g:javascript src="jquery-1.10.2.min.js"/>
      <g:javascript src="prototype.js"/>
   </head>
   <body>
      <form>
         <g:select from="['AFFILIATES', 'SEO', 'SEM','DISPLAYADS']" name="mv"
            onchange="${remoteFunction(
            controller:'Pgtyp', 
            action:'ajaxGetMv', 
            params:''id='   escape(this.value)',
            onSuccess: 'printpgtyp(data)')}">
         </g:select>
      </form>
      <script>
         function printpgtyp(data) {
            console.log(data)
         }
      </script>
   </body>
</html>
  

Я ожидаю, что массив объектов будет выведен на консоль. Тем не менее, я получаю следующий вывод в моей консоли:

 [
  each: function,
  eachSlice: function,
  all: function,
  any: function,
  collect: function …
]
  

Что-то не так с тем, как я это печатаю, или это потому, что значение из моего GSP каким-то образом не передается на контроллер?

Комментарии:

1. ["params.id"] должно быть [params.id]

2. Есть ли какой-нибудь способ отправить результат в GSP в следующем формате посещений: 123 посещения: 23 посещения: 12

3. Ваш код является файлом, за исключением изменений, о которых я упомянул выше. Он отправляет данные в формате [123, 23, 12,…]. Просто просмотрите это.

4. Что вы получите, если откроете в браузере http://[[your_url]]/pgtyp/ajaxGetMv URL?

5. Также вы можете добавить ведение журнала прямо в метод, если хотите знать, какой метод используется в параметрах. def ajaxGetMv = { log.debug "params: $params"