Вопрос

РЕДАКТИРОВАТЬ:основываясь на отзывах, стер исходный Q.полностью и репост на лучшем языке

Я хочу получить доступ к переменной запроса или параметров и передать ее между контроллером и gsp.я понимаю, что объект params содержит все, что есть в строке запроса.

Все примеры, которые я вижу, основаны на модели.Я искал документацию в Интернете, и у меня есть две книги - «Начало Грааля» и «Полное руководство по Граалю», в обеих есть примеры параметров, основанные на базе данных.Я хочу понять, как можно устанавливать и получать доступ к параметрам.Все, что я везде читал, это то, что это карта переменных запроса.

Мой сценарий следующий:У меня есть контроллер, который отправляет список (не из базы данных) в GSP.Я подумал о передаче переменной «params» между GSP и контроллером.

Еще раз повторю: сценарий, который у меня есть, не основан на модели.Я хочу перебрать список элементов (без известного количества баз данных), и это управляется щелчком пользователя.Я подумал о реализации чего-то вроде того, что в Твиттере есть «кнопка больше внизу».у меня есть простая удаленная ссылка внизу страницы с новым счетчиком страниц, к которому я обращаюсь в контроллере и передаю своему классу обслуживания для новой части списка.

код контроллера:

//access params from request
int pageInt =params["pagecount"] // *i always get null here*

callMyList(pagecount) //calls my service method to get next set of list for next page

Код GSP (не актуальный)

 <%= params.get("pagecount") %>
 <%= nxtPage = pagecount++ %>
  ...
 <%params["myId"] = nxtPage%>


<g:remoteLink action="list" id="${nxtPage}">More</g:remoteLink>
Это было полезно?

Решение

Объект params полезен только для получающий значения из строки запроса текущего запроса. Параметр значение в параметрах в GSP ничего не сделает.Params — это объект области запроса, с каждым новым запросом это совершенно новый объект.Чтобы передать значение из вашего GSP в контроллер списка, это значение должно быть в строке запроса нового запроса к контроллеру.В вашем случае, похоже, вы хотите поместить это в ссылку «Еще».В соответствии с тем, как написан ваш тег RemoteLink, значение nxtPage должно быть в params.id в вашем контроллере списка, чтобы вы могли получить к нему доступ таким образом.Если вы хотите находиться в params.pagecount, вам придется поместить его в атрибут params тега RemoteLink.Что-то вроде этого:

<g:remoteLink action="list" params="[pagecount: nxtPage]">More</g:remoteLink>

Другие советы

def urlString =  request.scheme + "://" + request.serverName + ":" 
+ request.serverPort + "/" + grailsApplication.metadata.'app.name' 
+ "/" + controllerName + "/" 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top