2017-03-02 1 views
1

Comment générer une liste déroulante en lisant les données du fichier message.properties à l'aide de Grails? Je l'ai déjà créé le fichier de domaine:Créer une liste déroulante en lisant les données du fichier de propriétés dans Grails

class Feedback { 

    enum Type { 
    COMPT("compt") , 
    COMPL("compl") , 
    ENQ("enq") 

    final String typeID 
    Type (String typeID){ 
     this.typeID = typeID 
    } 
    String toString(){ 
     typeID 
    } 
} 



    static constraints = { 
     typeID inList: Type.values()*.typeID 
     } 
} 

Voici mes données stockées dans message.properties fichier

type.compt=Complaint 
    type.compl=Compliment 
    type.enq=Enquiry 

Comment afficher les informations contenues dans GSP en utilisant taglib?

Répondre

0

Pour faire passer le message en fonction du paramètre donné, vous pouvez utiliser

<g:message code="type.${passedFeedbackType}" /> 

Création d'une liste déroulante à partir d'une liste de ENUM est essentiellement fait comme suit:

<g:select name="yourList" value="${value_you_want_to_have_first}" 
      from="${Feedback.Type.values()}" optionValue="${it}" 
optionKey="typeId"/> 

Mais vous voulez avoir le message de propriété en tant que valeur. Vous pouvez également utiliser message de la taglib comme

${g.message(code:'your.message.code')} 

Donc, la solution à votre problème serait, par exemple

<select> 
    <g:each in="${Feedback.Type.values()}" var="feedbackType"> 
     <option value="${type}">${g.message(code:"type.${type}")}</option> 
    </g:each> 
</select> 

Parce que je peux en quelque sorte pas le faire fonctionner avec <g:select>, mais finalement elle a aussi génère du HTML pur. N'oubliez pas d'avoir tous les messages correspondants dans les propriétés.

+0

Merci pour votre réponse, je l'ai résolu! –

+0

@KCKoay Heureux qui a aidé! Si cela a résolu votre problème, vous pouvez maintenant marquer cette réponse comme acceptée (et l'augmenter si vous le souhaitez). Merci! –

+0

Désolée, je ne peux pas faire de promotion car ma réputation est inférieure à 1 mais je la marque comme acceptée. Merci encore pour votre aide! –