2016-04-08 1 views
0

J'utilise g: select et souhaite mettre une valeur par défaut sélectionnée. Cependant, lorsque la valeur par défaut est null, il faut afficher "Veuillez en sélectionner un". Cependant, je n'arrive pas à me débrouiller.conditions à l'intérieur de g: select gsp tag

code

est ci-dessous:

Tel est l'objet d'adresses - options contenues dans une liste déroulante

Address 
    Long id 
    String name 
    Sheriff sheriff 
    String phaseCode 

ListOfSheriffs est une liste des shérifs contient la liste des Sheriff objet

Sheriff 
    Long id 
    String name 
    //other property here 

defaultSheriff est le shérif par défaut d'une adresse

ci-dessous le code est un sur mon gsp

<g:select optionKey = "id" 
      optionValue = "${{sheriff.name +' '+sheriff.id}}" 
      name="sheriff.name" 
      from="${ListOfSheriffs}" 
      value="${(defaultSheriff == null) ? 'Please select one' : defaultSheriff}" /> 

Cependant, wether defaultSheriff est null « S'il vous plaît sélectionner un » affichage wont, la page affiche seulement le premier shérif des ListOfSheriffs. J'ai obtenu cette solution de here . Et pas si sûr de ce que j'ai laissé de côté.

Aussi, j'ai essayé d'utiliser noSelection basé sur ce que j'ai lu sur docs. Cependant, le résultat est, si quelque chose ne sait pas ce que j'ai fourni la valeur par défaut sélectionnée dans la liste déroulante sur la page est toujours « S'il vous plaît sélectionner un » même si le defaultSheriff n'est pas nul

<g:select optionKey = "id" 
      optionValue = "${{sheriff.name +' '+sheriff.id}}" 
      name="sheriff.name" 
      from="${ListOfSheriffs}" 
      value="${defaultSheriff}" 
      noSelection="[null:'Please select one']" /> 

, ne hésitez pas pour le dire ajouter, je serai heureux de le détailler. grâce

Répondre

0

Je dirais que vous avez besoin SMTH comme celui-ci

<g:select optionKey = "id" 
      optionValue = "${{it.name +' '+ it.id}}" 
      name="sheriff.name" 
      from="${ListOfSheriffs}" 
      value="${sheriff?.id ?: defaultSheriff?.id}" 
      noSelection="['':'Please select one']" /> 
+0

celui-ci fonctionne! Merci –