現時点では、grails で足場を処理しようとしています。そこで、解決策が見つからない生成テンプレートに少し問題があります。ドメインモデルで生成アルゴリズムを構成したいと考えています。私の考えは、データベースで作成されず、生成プロセスにのみ重要な静的変数をモデルで定義することでした。たとえば、show.gsp にいくつかの特別なフィールドのみを表示したいが、_form.gsp にはすべてのフィールドを表示したい、または、いくつかの gsp-import を実行したいが、別の 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