通过从 Grails 中的属性文件读取数据来创建下拉列表

Create Drop-down List By Reading Data From Properties File in Grails

如何使用Grails从message.properties文件中读取数据生成下拉列表?我已经创建了域文件:

  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
       }
}

这是我存储在 message.properties 文件

中的数据
  type.compt=Complaint
  type.compl=Compliment
  type.enq=Enquiry

如何使用taglib显示GSP中的信息?

要根据给定参数获取消息,您可以使用

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

从枚举列表生成下拉列表的基本步骤如下:

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

但是您想将 属性 消息作为一个值。您还可以使用标签库中的 message 作为

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

例如,您的问题的解决方案是

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

因为不知何故我无法让它与 <g:select> 一起工作,但最终它也会生成纯 HTML。 请记住在属性中包含所有相应的消息。