2012-03-31 13 views
5

Jak mogę wywołać metodę w jednej z moich klas kontrolerów bez grails próbując wygenerować widok?Jak wywołać akcję bez generowania widoku w grails

+0

skąd dzwonisz i co chcesz zrobić? –

+0

Działanie w kontrolerze zawsze musi wysłać coś z powrotem do użytkownika. Ale to wcale nie musi być strona GSP, ani HTML, możesz samodzielnie zbudować odpowiedź dowolnego typu. Jak sugeruje nate, musimy wiedzieć, co chcesz osiągnąć, aby pomóc Ci znaleźć rozwiązanie. – David

+1

czy próbowałeś "renderować"? – neodevelop

Odpowiedz

4

Możesz redirect do innej akcji kontrolera.

class PuppyController { 

    def woof() { 
    redirect(action:'bark') 
    } 

    def bark(){ 
    response.write "Moo" 
    } 

} 

W pewnym momencie trzeba albo napisać do odpowiedzi lub przekierować do metody/zamknięcia, która odpowiada widoku, dzięki czemu użytkownik może odbierać dane wyjściowe.

Jeśli metoda, z którą próbujesz się połączyć, znajduje się na innym kontrolerze, najprawdopodobniej YOAR GOING WRONG.

Jeśli, na przykład, mam metodę kontrolera, która ładuje plik, i inną metodę, która tworzy nazwę pliku dla tego pliku jako kombinację jakiejś konwencji, którą wymyśliłem (np. Znacznik czasu + "ładny plik dla" + nazwa użytkownika) na innym kontrolerze, należy wypromować tę metodę kontrolera na Service i wprowadzić ją do obu kontrolerów.

2
class FooController { 

    def fooAction() { 
    render("Successful call to fooAction") 
    } 

} 
0

Zasadniczo można utworzyć instancję kontrolera (za pomocą słowa kluczowego "nowe"), a następnie wywołać akcję zainteresowania. Podaj więcej informacji o tym, co chcesz zrobić, więc może będę w stanie udzielić lepszej odpowiedzi ...

Powiązane problemy