2012-08-03 16 views
5

Ich habe eine Auswahl von TYPEN, dass jeder Typ ihre eigenen PARAMETER hat. Das Auswahlfeld TYPES löst einige AJAX aus, die eine Vorlage aufrufen, und rendert PARAMETER-Felder in meiner Ansicht. Die Parameter bestehen aus Name: Wert-Paaren, daher kann jeder Name viele Werte haben.Grails mehrere g: wenn Test für mehr als eine Bedingung

Einige Parameter benötigen multiple = 'true', damit der Benutzer mehrere Werte für jeden Namen auswählen kann, während andere Parameter auf nur eine Option beschränkt sein müssen.

In meiner gsp Seite ich ein paar von ihnen haben:

<g:if test="${it?.getKey().toString().equals('PARAMETER_A')}"> 
     <td><g:select multiple="true" optionKey="id" optionValue="value" name="sampleParameters" id="parameter" value="${params?.sampleParameters}" from='${it?.getValue().sort()}'></g:select></td> 
    </g:if> 
    <g:if test="${it?.getKey().toString().equals('PARAMETER_B')}"> 
     <td><g:select multiple="true" optionKey="id" optionValue="value" name="sampleParameters" id="parameter" value="${params?.sampleParameters}" from='${it?.getValue().sort()}'></g:select></td> 
    </g:if> 

Mein Problem ist, dass ich 6 Parameter für einen bestimmten Typ haben, die mehrere Werte auswählen müssen, tun den Rest nicht. Anstatt wie oben explizit zu tippen, gibt es eine Möglichkeit, dass ich mehr als eine Sache in einer g: if-Anweisung testen kann, wie Sie es in Java können? wie zum Beispiel:

if(something.equals(PARAMETER_A) || something.equals(PARAMETER_B)) 

usw.

Gibt es eine Möglichkeit, etwas ähnlich wie Java-Ansatz in groovy zu tun?

Antwort

12

Grails g:if verwendet nur groovy in seinem Testattribut. Also, um Ihre Frage zu beantworten, ja:

<g:if test="${something.equals(PARAMETER_A) || something.equals(PARAMETER_B)}"> 
</g:if> 
+1

Danke. Ich habe es anders versucht. – Universitas