Как получить URI ресурса в Grails? - PullRequest
3 голосов
/ 14 июня 2011

Очень простой вопрос.Я хочу предоставить URI для некоторых объектов в моем приложении.Например, ресурс доступен по адресу:

http://localhost:8080/myapp/user/1

Однако я бы хотел сериализовать такой объект User.Эта сериализация должна содержать открытый URI самого объекта.Так, например, модель имеет новый метод serializeToSomething, который будет сериализовать:

id: 1
username: JohnDoe
email: johndoe@example.com
publicURI: http://localhost:8080/myapp/user/1

Как я могу сообщить экземпляру модели свой URL?* Некоторые примечания: Это должно происходить в рамках модели, контроллера или службы, а не в представлении.Также я не хочу жестко закодировать это.

Ответы [ 3 ]

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

См. Связанный вопрос Можно ли использовать тег grails за пределами GSP?

В основном вы можете использовать g.createLink в контроллере или службе, и он вернет строку.Таким образом, вы можете сделать что-то вроде:

def uri = g.createLink(controller: 'user', action: 'show', id: user.id, absolute: true)
0 голосов
/ 14 июня 2011

Вы можете получить URL в контроллере, используя

request.forwardURI

A аналогичный вопрос был задан ранее

0 голосов
/ 14 июня 2011

Лично я закончил сериализацию 3 вещей: controller имя, action имя (обычно "шоу") и id. Затем я использовал эти три в g.createLink при отображении десериализованных объектов в представлении.

Конечно, это не сработает, если вам нужен десериализованный объект для внешнего использования.

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