如何在grails中显示category下的子类别?

如何在grails中显示category下的子类别?,grails,gorm,Grails,Gorm,我想在相关类别下显示子类别。例如: Category SubCategory SubCategory SubCategory Category SubCategory SubCategory SubCategory Category SubCategory SubCategory SubCategory 以下是与类别和子类别相关的领域分类: Category.groovy class Category { String name String des

我想在相关类别下显示子类别。例如:

 Category
 SubCategory
 SubCategory
 SubCategory

 Category
 SubCategory
 SubCategory
 SubCategory

Category
 SubCategory
 SubCategory
 SubCategory
以下是与类别和子类别相关的领域分类:

Category.groovy

class Category {

    String name
    String description
    static constraints = {
    }
    static hasMany = [ subCategories: SubCategory ]
}

子类别。groovy

class SubCategory {

        String name

        static hasMany = [requirements: Enquiry]
        static belongsTo = [ category: Category]
        static constraints = {
            requirements nullable:true
        }
    }
showCreateInquiry我试图编写逻辑来获取类别和相关子类别

def showCreateEnquiry() {
        def reqCode = Util.generateUniqueReqCode()
        EnquiryCommand enquiryInstance = new EnquiryCommand();
        enquiryInstance.setReqCode(reqCode) ;
        def marketlist = Category.list(params.id)
        def subCategoryList = marketlist?.subCategories
        render ( view: "showCreateEnquiry" , model:[ "enquiryInstance": enquiryInstance, "marketlist": marketlist] )
    }
现在我想要这样的东西:有人告诉我,我可以在上面的操作中创建groovy列表,在这里我可以传递category和subcategories的参数,并在GSP中使用这些变量,每个循环使用2 for或来迭代category和subcategory。
有谁能帮我做到这一点。

根据我的理解,下面是解决方案:)

showcreateinquiry.gsp

<g:each in="${marketlist}" var="category">
    <p>${category.name}</p>
    <g:each in="${category.subCategories}" var="subCategory">
      <p>${subCategory.name}</p>
    </g:each>
</g:each>

${category.name}

${subCategory.name}


此外,渲染时不需要在模型中包含
inquiryInstance
。并使用css为您的视图设置样式。

hi@emilan,这就像魅力:)。我可以使用groovy列表在上述操作中查找类别及其相关子类别,并将类别和子类别作为参数传递。你怎么说?像这样的。def findAllSubCategories(category,results=[]){category.subCategories.each{child->results当然可以。这类问题可能有很多解决方案,但我建议您使用上述解决方案,我认为它很简单,也很好。hi@emilan,我们正在采用的方法,在编辑此页面(即编辑查询页面)时可以吗?