grails 对默认脚手架的小定制
Posted
技术标签:
【中文标题】grails 对默认脚手架的小定制【英文标题】:grails small customization to default scaffolding 【发布时间】:2013-11-07 22:29:23 【问题描述】:使用默认的 grails 脚手架,最简单或最有效的方法是使“级别”字段介于 0 和 5 之间,作为选择列表下拉菜单?
或者,是否只有我安装模板并自定义它们才能做到。我已经阅读过这方面的内容,但除非必要,否则我不想这样做。
这是域类:
package treetester
class CustomerDivisionTreeNode
String name
int level
CustomerDivisionTreeNode parent
static constraints =
parent(nullable: true)
static hasMany = [children: CustomerDivisionTreeNode]
static mappedBy = [children:'parent']
这是控制器类
package treetester
class CustomerDivisionTreeNodeController
def scaffold = CustomerDivisionTreeNode
我在文档中看到,(http://grails.org/doc/latest/guide/scaffolding.html) 你可以这样做...
您还可以让生成器生成列表而不是文本 如果使用 inList 约束,则输入:
定义约束 = 标题() 类别(inList:[“小说”,“非小说”,“传记”]) 发布日期()
所以,逻辑告诉我我想要这样的东西:
level(inList:["0","1","2","3","4","5"])
但是把它放在哪里并让它发挥作用呢?
【问题讨论】:
“脚手架”是什么意思。据我了解,您需要使用值进行选择。为什么要搭脚手架? @baxxabit:我所说的“脚手架”是指 Grails 默认的脚手架,它动态地呈现该域的 CRUD。我的问题是,我可以更改动态生成的页面(基于默认脚手架)的显示方式吗?在此示例中,我想将“级别”字段从呈现为普通 更改为 @baxxabit:您关于脚手架的问题似乎表明您不了解 Grails 语句:def scaffold = CustomerDivisionTreeNode 也许你是对的 :) 你能试着解释一下,你是怎么理解的,def scaffold = CustomerDivisionTreeNode 是如何工作的?会发生什么? 下面是脚手架:grails.org/doc/latest/guide/scaffolding.html 文档描述了一小部分自定义设置。但是文档通常很少,并且有一些方法可以做没有记录的事情。我问的原因。 【参考方案1】:所以答案是我忽略了域约束的最小和最大选项:这是在 GSP 上获得它的方法...
看线 级别可为空:真,最小值:1,最大值:5 下面...
class CustomerDivisionLevel
Integer level
String levelName
Customer customer
static belongsTo = [Customer]
static mapping =
id generator: "assigned"
static constraints =
level nullable: true, min: 1, max: 5
levelName nullable: true, maxSize: 45
【讨论】:
以上是关于grails 对默认脚手架的小定制的主要内容,如果未能解决你的问题,请参考以下文章