Vielleicht würde es helfen, es in zwei Ausdrücke aufzuteilen. params.max ? params.int('max') : 10
ist der ternäre Ausdruck ... dessen Ergebnis der erste Arg in Math.min
ist (wobei 100
der andere Arg ist).
Sieht so aus, als wäre das Endergebnis eine Ganzzahl, die auf höchstens 100 und standardmäßig auf 10 beschränkt ist.
Ist es jetzt klar?
%Vor% Übrigens ist dies ein nettes in Grails populäres Idiom - wenn der Parameter max
existiert, lies es, aber , wenn es den angegebenen Wert ( 100
standardmäßig) überschreitet, trenne es auf 100
. Auf diese Weise wird ein Angreifer oder ein böswilliger Benutzer Ihre Anwendung nicht dazu veranlassen, beliebig große Datenmengen aus der Datenbank zurückzugeben.
Wenn Sie sich gegen Angriffe schützen, sollten Sie auch die unteren Grenzen betrachten. Ich bin gerade in 2.4.4 gelandet: Alles unter 1 scheint alle Datensätze zurückzugeben. Es ist nicht dokumentiert, und die Quelle scheint nach Werten & gt; -1, aber ich fand, dass ich Werte überprüfen musste & gt; 0:
%Vor%