Grails 如何从另一个域呈现gsp页面中的字段?

Grails 如何从另一个域呈现gsp页面中的字段?,grails,groovy,gsp,Grails,Groovy,Gsp,以下是我的设想: Class Domain1 { static hasMany=[ tests : Domain2 ] static constraints = { tests(nullable: true) } } 及 我需要在domain1中显示domain2中的t1,并具有编辑功能 我需要在domain1中显示domain2中的t1,并具有编辑功能 请参阅上的项目 : : : : 简单演示 ${d2.t2} 是否要在网页中呈现一个文本字段列表,一个用于d1中每个元素的t1。测试

以下是我的设想:

Class Domain1 {
  static hasMany=[ tests : Domain2 ]
  static constraints = { tests(nullable: true) }
}

我需要在domain1中显示domain2中的t1,并具有编辑功能

我需要在domain1中显示domain2中的t1,并具有编辑功能

请参阅上的项目

:

:

:

:


简单演示
${d2.t2}

是否要在网页中呈现一个文本字段列表,一个用于
d1中每个元素的
t1
。测试
?是。这就是我的想法。我有点迷路了。我试着使用
g:textField
类似
它更像
,其中
domain1VarName
是指向
Domain1
实例的模型变量的名称。我试过了。问题是它用id显示整个域值,类似于表示域类和相应id的
Domain1:10
。我想在这里显示
t1
的确切值,如果没有值,我希望能够添加一个新值。这听起来不对。如果
value
属性是
${domain1VarName.t1}
并且
domain1VarName
指向
Domain1
的一个实例,那么将呈现该实例
t1
的值,而不是实体id。
t1
的值可能恰好与
id
的值相同,但是
t
Domain2
中是一个
Double
,可以有任何价值。这非常有用。在另一种方法中,是否可以从domain1的网页中创建一个新的domain2对象作为字段?“是否可以从domain1的网页中创建一个新的domain2对象作为字段?”-当然可以。您可以在gsp中放入您喜欢的任何表单字段,然后使用它们在服务器上创建您喜欢的任何域对象。您介意提供一个使用上述场景中的domain1和domain2的示例吗?
Class Domain2 {
  Double t1, String t2
  static constraints={
    t1(nullable:true
    t2(nullable:false,blank:false)
  }
}
package samdomain

class Domain1 {
    static hasMany = [tests: Domain2]
}
package samdomain

class Domain2 {
    Double t1
    String t2

    static constraints = {
        t1 nullable: true
    }
}
package samdomain

class DemoController {

    def index() {
        def d1 = new Domain1()
        d1.addToTests t1: 42, t2: 'Fourty Two'
        d1.addToTests t1: 2112, t2: 'Twenty One Twelve'

        [domainInstance: d1]
    }

    def update() {
        render "Updated values: ${params.t1Values}"
    }
}
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <meta name="layout" content="main"/>
    <title>Simple Demo</title>
</head>

<body>

<g:form action="update" method="POST">
    <table>
    <g:each var="d2" in="${domainInstance.tests}">
        <tr>
            <td>${d2.t2}</td>
            <td><g:textField name="t1Values" value="${d2.t1}"/></td>
        </tr>
    </g:each>
    </table>
    <g:submitButton name="Update"/>
</g:form>
</body>
</html>