Templates 跨多个域重用模板

Templates 跨多个域重用模板,templates,grails,reusability,Templates,Grails,Reusability,我正在尝试在多个域上重复使用模板。 模板如下所示: <div id="emailEntry"> <Table> <tr class="prop"> <td valign="top" class="name"> <label for="email" id="email"><g:message code="default.email.label" default="Pri

我正在尝试在多个域上重复使用模板。 模板如下所示:

<div id="emailEntry">
    <Table>
        <tr class="prop">
        <td valign="top" class="name">
            <label for="email" id="email"><g:message code="default.email.label" default="Primary e-mail address* :" id="email" /></label>
        </td>
        <td valign="top" class="value ${hasErrors(bean: instanceToUse, field: 'email', 'errors')}">  
            <g:textField name="email" value="${instanceToUse?.email}"/> 
        </td>
    </tr>       
    </Table>
</div>
<g:render template="/templates/frmEmailTableEntry" />
//say the instance you wish to use is "customerInstance"
<g:render template="/templates/frmEmailTableEntry" model="[instanceToUse: customerInstance]" />
“我的视图”会这样调用此模板:

<div id="emailEntry">
    <Table>
        <tr class="prop">
        <td valign="top" class="name">
            <label for="email" id="email"><g:message code="default.email.label" default="Primary e-mail address* :" id="email" /></label>
        </td>
        <td valign="top" class="value ${hasErrors(bean: instanceToUse, field: 'email', 'errors')}">  
            <g:textField name="email" value="${instanceToUse?.email}"/> 
        </td>
    </tr>       
    </Table>
</div>
<g:render template="/templates/frmEmailTableEntry" />
//say the instance you wish to use is "customerInstance"
<g:render template="/templates/frmEmailTableEntry" model="[instanceToUse: customerInstance]" />
my class customer和employee都具有电子邮件属性。 所以我的问题是,若我想为类customer和employee重用模板frmEmailTableEntry,那个么我应该在模板中为instanceToUse添加什么呢。 我读过关于使用声明的var进行渲染的文章,但我不太确定如何传递这个消息。请帮我做这个


提前感谢。

在模板中输入什么并不重要。如果您保持原样,您可以在其他普惠制中使用它,如下所示:

<div id="emailEntry">
    <Table>
        <tr class="prop">
        <td valign="top" class="name">
            <label for="email" id="email"><g:message code="default.email.label" default="Primary e-mail address* :" id="email" /></label>
        </td>
        <td valign="top" class="value ${hasErrors(bean: instanceToUse, field: 'email', 'errors')}">  
            <g:textField name="email" value="${instanceToUse?.email}"/> 
        </td>
    </tr>       
    </Table>
</div>
<g:render template="/templates/frmEmailTableEntry" />
//say the instance you wish to use is "customerInstance"
<g:render template="/templates/frmEmailTableEntry" model="[instanceToUse: customerInstance]" />

将customerInstance传递到模板中的${instanceToUse}变量。

签出自定义标记库。他们最适合这类问题。