有人能指出我在Grails中正确功能的正确方向,以在我的视图中实现动态更改属性吗?例如,当域类的实例处于特定工作流步骤中时,我希望某些字段提示,按钮标签和数据修改能力特定于该步骤。我可能会将这些属性存储在另一个域类中,但我不确定如何在执行时应用它们,比如数据实例上的编辑方法。这是自定义标签进来,还是我只是用变量标签替换我的视图中的所有属性,并从控制器传递值?让我入门的搜索词很好。感谢。
答案 0 :(得分:1)
在控制器操作中,您可以返回模型(Map)。可以在视图中读取此模型中的数据:
class MyController {
def test() {
return [myData: 'hello', myOtherData: 42]
}
}
在视图中,您可以通过以下方式访问模型:
...
<h1>${ myData }</h1>
<g:if test="${ myOtherData == 42}">
<p>${ myOtherData }</p>
</g:if>
...
如果要使用控制器中的模型返回另一个视图,可以使用render方法:
render view: 'myview', model: [myData: 42]
有关详细信息,请参阅grails文档中的Models and Views部分。
答案 1 :(得分:0)
感谢您回复@micha。具体来说,我想知道动态改变页面视图方面(视图)的最佳实践是什么。我想通过查看动态支架域中的视图来回答我的问题。例如,字段提示全部采用以下形式:
<label for="last">
<g:message code="employee.last.label" default="Last" />
</label>
因此,您可以计算控制器/服务中需要的所有提示,或者从数据库中查询它们,并将它们与进入字段的数据一起传递。我只是在检查Grails是否预见到了这种需求,并通过架构的某些特定方面使其变得更容易。