我是grails的新手。我现在正在处理我的脚手架模板,特别是在我的控制器上。我每次生成它都需要一个自定义控制器,所以我使用了“install-templates”。我总是在控制器上创建一个Command对象,是否可以在我生成的控制器中包含从我的域类到我的命令对象的字段?我知道我必须在控制器模板中这样做,但我不知道如何编码或甚至可能。因此,每次使用generate-controllers时,Command对象上的字段都已设置。
${className}Command implements java.io.Serializable{
constraints = {}
}
例如我的Domain类看起来像这样:
class Person{
String name
int age
double height
}
我希望它通过编辑控制器模板在我生成的控制器上的Command对象中自动生成我的域类的字段。可能吗?感谢您分享您的知识。
答案 0 :(得分:1)
edit.gsp
,show.gsp
和list.gsp
模板都具有基于域类创建字段的逻辑,您可以看到它是如何完成的。
基本上,当您在模板中包含groovy代码时,可以使用domainClass
变量访问域类,然后您可以通过迭代getProperties()
返回的数组来打印属性声明,如下所示:
<%
domainClass.properties.each {
println " ${it.type} ${it.name}"
}
%>
答案 1 :(得分:1)
有趣的问题 - 为什么你认为你需要命令对象?这样,你违反了原则。
当你刚开始使用grails时,你应该尝试使用grails,因为它有意使用,而不是尝试增强它。
一旦你创建了第一个全功能的grails项目,你就会看到grails设计的美妙之处 - 不需要隐式命令对象:-) - 或选择另一个框架