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

时间:2017-03-02 09:15:01

标签: java grails groovy properties gsp

如何使用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中显示信息?

1 个答案:

答案 0 :(得分:0)

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

compile

从枚举列表生成下拉列表基本上完成如下:

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

但是您希望将属性消息作为值。您也可以使用taglib中的<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> ,但最终它还会生成纯HTML。 请记住在属性中包含所有相应的消息。