我有两个Domain类:

class Product {
  ProductType productType
  int openingQuantity
  int unitQuantity
  Date dateCreated
  Date lastUpdated
  boolean active
  static constraints = {
    productType(blank:false,nullable:false)
    openingQuantity(blank:false, nullable:false)
    unitQuantity(blank:false, nullable:false)
    active(nullable:false)
    dateCreated()
    lastUpdated()
  }
}


class ProductType {
  String name
  Date dateCreated
  Date lastUpdated

  static constraints = {
    name(nullable:false, blank:false,maxSize:50,validator: {
      return !ProductType.findByNameIlike(it)
    })
    dateCreated()
    lastUpdated()
  }
}

当我使用Product.gsp产品时。它在下拉列表中将productType显示为id。但我的要求是在下拉列表中显示ProductType名称。谁能帮忙。

最佳答案

您可以在ProductType类上重写toString。

String toString() { name }

或者,假设您使用的是默认脚手架,请更改:
<g:select name="productType.id"
          from="${com.ten.hp.his.pharmacy.ProductType.list()}"
          optionKey="id"
          value="${productInstance?.productType?.id}" />

通过添加optionValue,它看起来像:
<g:select name="productType.id"
          from="${com.ten.hp.his.pharmacy.ProductType.list()}"
          optionKey="id"
          optionValue="name"
          value="${productInstance?.productType?.id}" />

关于grails - 域内域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10697088/

10-10 18:05