Как получить доступ к URL (или параметрам Grails) за пределами контроллера? - PullRequest
2 голосов
/ 07 июня 2011

Фон: Я создал свой собственный TagLib для приложения.Один из тегов должен зависеть от текущего URL-адреса запроса (от параметров пути и URL-адреса).У меня есть два файла gsp - макет и обычная страница.

Проблема: Я попытался получить текущий URL-адрес запроса из обработчика тегов, используя это:

request.requestURI

Но вместо этогоиз того, что у меня есть в браузере

http://localhost:8888/gbv/999/index

По какой-то причине он будет возвращать что-то вроде этого, когда тег вызывается с обычной страницы:

/gbv/grails/index.dispatch

И он будет возвращать это при вызове тегаиз шаблона (который в порядке):

/gbv/999/index

Вопрос: Как сделать один (или оба из этого)

  1. Получить тот же экземпляр "params ", который доступен из контроллера (без изменения контроллера)
  2. Получить текущий URL-адрес запроса (такой же, как у пользователя в браузере)

Ответы [ 3 ]

4 голосов
/ 07 июня 2011

Вы можете получить ссылку на параметры, просто сославшись на params в классе тега.

Если вы хотите пересоздать полный путь запроса (как показано в браузере), вы можете сделать это, используя методы объекта request, который является экземпляром HttpServletRequest , например,

  • getContextPath ()
  • getRequestURI ()
  • getServerName ()
  • getServerPort ()
3 голосов
/ 21 июля 2011

используйте следующее

request.forwardURI

0 голосов
/ 09 июня 2016

используйте ${params.id}, чтобы получить идентификатор текущего элемента, который вы просматриваете.

<Ч /> Кроме того,
используйте ${controllerName}, чтобы получить имя контроллера.
используйте ${actionName}, чтобы получить имя действия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...