2016-01-15 7 views
0

Я хочу определить абсолютную переменную каталога приложения, доступную для каждого действия в контроллере, в котором он определен (как обычно это было бы сделано в класс). Я хочу определить его только один раз в области контроллера. Я пытался использовать beforeInterceptor:servletContext.getRealPath ("/") выдает ошибку при запуске приложения в контроллере

class FileResourceController { 

    def uploadPath = "" 

    def beforeInterceptor = { 
     uploadPath = request.getSession().getServletContext().getRealPath("/") + "uploads" 
    } 
} 

, но uploadPath заканчивается пустым.

Просто делать это:

class FileResourceController { 

    def uploadPath = request.getSession().getServletContext().getRealPath("/") + "uploads" 
} 

выдает ошибку при запуске приложения.

Puting def uploadPath = request.getSession().getServletContext().getRealPath("/") + "uploads" внутри метод действия работает хорошо.

Как определить доступную абсолютную переменную пути контроллера в Grails?

Большое спасибо,

ответ

1

Вы можете сделать Holders.getServletContext() там вместо request.getSession().getServletContext().

Кроме того, «beforeInterceptors» в контроллере никогда не вызывается, поскольку Grails 3 поддерживает только автономные перехватчики.

+0

Сначала ваше решение не сработало, но просто добавив «import grails.util.Holders», он работал как шарм. Спасибо! – iTiger