2015-03-04 13 views
6

Vorrei fare uso di un tratto Groovy in un controller Grails secondo il seguente non è visibile e ottengo una risposta 404 da Grails. Sospetto che ci sia qualcosa che devo fare al tratto in modo tale che i metodi definiti al suo interno siano riconosciuti come azioni nella classe di implementazione. Qualcuno sa cosa potrebbe essere?Utilizzare un tratto Groovy in un controller Grails

EDIT 1:

altre informazioni: il tratto è definito in src/scanalato, non in Grails-APP/regolatori, quindi non è definito come un artefatto.

EDIT 2:

Inoltre, se cambio il tratto a una classe, contrassegnare con l'annotazione @Artefact e cambiare MyController di estendere questa classe, tutto funziona come previsto. Il tentativo di utilizzare l'annotazione @Artefact sul tratto non fa nulla (nessuna grande sorpresa).

+0

Quale versione di Grails stai usando? Inoltre, quale versione di Groovy stai usando? –

+0

Sto usando Grails 2.4.3 e Groovy 2.3.3. I tratti funzionano bene in altre parti dell'app e tutti i metodi dei tratti sono visibili come metodi, ma non sono collegati agli endpoint di azione. –

+0

hai risolto questo problema? abbiamo lo stesso numero – droggo

risposta

6

basta definire @Action annotazione sopra metodo definito nel tratto, questo renderà questo metodo di lavoro, come azione per il controller (quando tratti vengono implementate)

import grails.web.Action 

trait ColumnSelectionController { 

    @Action 
    def selectColumns() { 
    //Do something here 
    } 
} 

Spero che questo aiuti.

Problemi correlati