此刻我试图处理grails中的脚手架。在那里我有一些问题,我找不到解决方案的代模板。我想在domainmodel中配置生成算法。 我的想法是在模型中定义静态变量,这些变量不是在数据库中创建的,只对生成过程很重要。 例如,我想在show.gsp中只显示一些特殊字段,但我想显示_form.gsp中的每个字段或者我想做一些gsp-imports但只能在单独的gsp中显示。 所以我认为我可以定义一些静态变量,其中值包含一些我可以在生成模板中解释的配置参数。 我希望每个人都明白我的意思?
以下是一个例子:
class Awesome {
Long awesome_level
Long person_name
Boolean itsMe
static String showFields
static transients = ['showFields']
static constraints = {
einrichtungs_type()
type_of_conzept()
anzahl_gruppen()
anzahl_kinder_pro_Gruppe()
offnungszeiten()
showFields(["person_name", "itsMe"])
}
在Show-View中我只想显示数组“showFields”
中的字段...
for (p in props) {
if (p.embedded && p.name in domainClass.showFields) {
def embeddedPropNames = p.component.persistentProperties*.name
def embeddedProps = p.component.properties.findAll { embeddedPropNames.contains(it.name) && !excludedProps.contains(it.name) }
Collections.sort(embeddedProps, comparator.constructors[0].newInstance([p.component] as Object[]))
%><fieldset class="embedded"><legend><g:message code="${domainClass.propertyName}.${p.name}.label" default="${p.naturalName}" /></legend><%
for (ep in p.component.properties) {
renderFieldForProperty(ep, p.component, "${p.name}.")
}
%></fieldset><%
} else {
renderFieldForProperty(p, domainClass)
}
...
我知道if子句不起作用。我的问题是,我无法获得字段“showFields”的值。 知道我的问题:
我希望我能够展示我的问题并感谢您的帮助! 格尔茨 V
答案 0 :(得分:0)
我找到了解决这个问题的方法。首先,我认为可以通过创建自定义约束来实现。我仍然认为这也是可能的,但我找到了一种更好/更简单的方法来添加“配置”。 我使用已经存在的标记属性。如果我理解正确,我使用的属性参数在select-Html-tags中添加属性。现在我用它来添加一些配置参数。在这里我的解决方案:
cp.attributes.each { k, v ->
sb << "${k}=\"${v}\" "
}
更改为cp.attributes?.realAttributes.each { k, v ->
sb << "${k}=\"${v}\" "
}
静态约束= {einrichtungs_type(属性: [showField:真]) }
如果(cp.attributes?.showField){ ...
如果您遇到几乎相同的问题,我希望这4个步骤可以帮助您。
格尔茨
V