У меня есть приложение, в котором пользователи могут просматривать карты двумя способами (например, в виде миниатюр и в списке)
/map/browse
/map/list
Теперь я хотел бы ограничить эти представления просто отображением карт конкретного пользователя, например, через
/user/3/browse
/user/3/list
Итак, я создал отображение:
"/user/$userId/browse" {
controller = "map"
action = "browse"
}
"/user/$userId/list" {
controller = "map"
action = "list"
}
Теперь я могу перейти к /user/3/browse
, но как только я нажму на ссылку нумерации страниц или поменяю фильтры нумерации страниц, URL вернется к /map/browse
.
Также, если я установлю userId
на null
в контроллере, я получу ошибку:
Ошибка 500: Ошибка обработки GroovyPageView: Ошибка выполнения тега: Невозможно создать URL для сопоставления [/ user / (*) / list] и параметров [["action": "list", "controller": "map", "max": 20, "offset": 0, "sort": "uploadDate", "order": "desc", "userId": null, "totalMaps": 30]]. Параметр [userId] обязателен, но не указан! в /views/map/browse.gsp:26
Нумерация страниц работает следующим образом:
<div class="paginateButtons">
<g:paginate controller="map" action="browse" total="${mapInstanceTotal}"></g:paginate>
</div>
Что я могу сделать против этого или как правильно реализовать то, что я хочу?
Мне не обязательно иметь это сопоставление URL, мне нужен только хороший способ сказать: «Отображать карты только одного пользователя»