einfache groovige Operatorfrage: Math.min (params.max? params.int ('max'): 10, 100)

7

Können Sie mir sagen, wie der Ausdruck

ist? %Vor%

funktioniert? Es passt nicht in das groovige Ternär, wenn ja, welcher spezielle Operator ist das?

Danke

    
Ray 31.07.2011, 15:19
quelle

3 Antworten

7

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.

    
cHao 31.07.2011, 15:36
quelle
14

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.

    
Tomasz Nurkiewicz 31.07.2011 15:36
quelle
0

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%     
Scott Langeberg 02.08.2015 01:35
quelle

Tags und Links