我有一个简单的 Grails 应用程序,我想在通用脚手架 View 中隐藏一些列,防止用户编辑它们,但在添加新项目时仍然强制指定它们。我查看了可能的限制,但看起来没有一个完全符合要求:
column display: false
从 View 中隐藏该列,但在任何地方都隐藏它,包括添加 View 的新项目column editable: false
确实会阻止在编辑 View 中编辑该列,但您在添加新项目时也无法定义它(+它根本不隐藏)
那我该怎么解决呢?我仍然希望能够利用动态脚手架功能,但似乎无法指定该列不显示在一般 View 中,但在添加新内容时仍然强制执行它。有什么方法可以指定将其隐藏在哪个 View 中,而不是全有或全无?
最佳答案
假设我们有以下域:
class Thing {
String userName
String firstName
Integer userId
static constraints = {}
}
并且我们不希望用户名在编辑 View 上可编辑,您创建以下目录...
\views\thing\edit\userName
然后将名为 _widget.gsp
的文件添加到上面的目录,其中包含以下内容...
${value}
这将仅显示用户名的文本值。
至于索引 View ,我不是100%能轻易隐藏字段。 我知道字段插件将根据域类定义中的顺序呈现表中的前 7 个字段。因此,如果您有 > 7 个字段,您可以以 > 7 的顺序给出您想要隐藏的字段,显然这里存在巨大的限制,您甚至可能没有 8 个字段,或者您可能想要隐藏多个字段...
您可以对 ListView 执行上述操作,但创建一个名为 \views\thing\index\userName
的目录,然后创建一个名为 _displayWidget.gsp
的文件,其中不包含任何内容它或者可能是“隐藏”之类的一些文本,这仍然会呈现该列,但不会显示任何值或您添加到文件中的任何文本,同样不太好。
关于java - 如何在脚手架 View 中隐藏字段,但在 Grails 中添加新行时仍然强制执行它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54126287/