request-Variablen in grails
BEARBEITEN: basierend auf dem feedback, gelöscht original F. vollständig und Umbuchung in eine bessere Sprache
Möchte ich Zugriff auf eine Anfrage oder die params-variable und übergeben es zwischen dem controller und den Aps. ich verstehe, dass die params-Objekt enthält alles, dass ein querystring hat.
Allen Beispielen, die ich sehe, sind alle Model driven.
Ich habe nachgeschaut docs online und ich habe zwei Bücher - Anfang-grails und definitive guide to grails, beide haben datenbankbasierte Beispiele params. Ich möchte verstehen, wie Parameter eingestellt werden können und zugänglich sind. Alle, die ich überall zu Lesen ist, dass es eine map von request-Variablen.
Mein Szenario ist wie folgt:
Ich habe einen controller sendet eine Liste (nicht aus einer Datenbank) an die Aps. Ich dachte an einem "params" variable zwischen den Aps und dem controller.
Wiederholen, das Szenario, das ich habe, ist nicht ein Modell angetrieben. Ich bin auf der Suche für die Iteration durch eine Liste der Elemente (ohne Datenbank-Zählung bekannt) und wird angetrieben von Benutzer klicken Sie auf. Ich dachte der Umsetzung so etwas wie, was twitter ist "den" mehr-button-auf-den-Boden". eine einfache remotelink am unteren Rand der Seite mit einer neuen Seite counter, die ich in access in den controller und pass auf meine service-Klasse für das neue Teil der Liste.
controller-code:
//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
Aps (nicht die tatsächlichen) code
<%= params.get("pagecount") %>
<%= nxtPage = pagecount++ %>
...
<%params["myId"] = nxtPage%>
<g:remoteLink action="list" id="${nxtPage}">More</g:remoteLink>
getan-tut mir Leid Sie zu ertragen hatte, der früheren post!
InformationsquelleAutor Mak | 2009-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem params-Objekt ist nur dann sinnvoll, für immer Werte aus dem query-string der aktuellen Anfrage. Einstellung einen Wert in Parameter Aps nichts. Params ist eine request-scope-Objekt, mit jeder neuen Anforderung, es ist ein ganz neues Objekt. Übergeben Sie einen Wert aus Ihrem Aps zu Ihrer Liste-controller, der Wert muss im query-string der neuen Anforderung an den controller. In deinem Fall, sieht es wie Sie wollen, um es in Ihr "Mehr" - link. Die Art und Weise Ihre remoteLink-tag geschrieben wird, wird der Wert von nxtPage sollte in params.id in Ihrer Liste-controller, so konnte man es auf diese Weise zugreifen. Wenn Sie möchten, werden in params.pagecount würden Sie haben, um es in der params-Attribut von Euch remoteLink-tag. So etwas wie dieses:
int pageInt = params["Seitenzahl"]
Request-Parameter aus dem params-Objekt als String-Objekte. Wenn Sie möchten, dass der integer-Wert des Strings, Sie müssen analysiert werden, etwa so: int pageInt = Integer.parseInt(params.pagecount)
danke, Ben verwaltet. Würdet Ihr das bitte lassen Sie mich wissen, wenn dies ist der Weg, ich sollte ein bisschen "Paginierung" für nicht-Datenbank-Listen? zB: einige Listen kommen aus dem web oder einer Drittanbieter-app wie facebook/twitter etc.? ........Auch wie Sie besser auf diese Art von Logik? Bitte um Rat - ist es natürlich zu fühlen, so blöd beim starten?
InformationsquelleAutor Ben Williams
InformationsquelleAutor Hisham