С помощью grails легко показать все поля объекта домена, например:
<f:display bean="transaction"/>
Однако здесь не отображаются два критических свойства для этого конкретного домена: идентификатор и дата создания.
Я пробовал кроме = "" и кроме = "[]", но это не работает (я думаю, что это работает только на f: table).
Одна идея состоит в том, чтобы отобразить пропущенные поля, а также поля бинов, то есть:
<f:display bean="transaction" property="id"/>
<f:display bean="transaction"/>
Но это приводит к плохо отформатированному выводу. HTML это производит id:
<div id="show-transaction" class="content scaffold-show" role="main">
<h1>Show Transaction</h1>
1
<ol class="property-list transaction">
<li class="fieldcontain">
<span id="debit-label" class="property-label">Debit</span>
<div class="property-value" aria-labelledby="debit-label">0</div>
</li>
<li class="fieldcontain">
<span id="credit-label" class="property-label">Credit</span>
<div class="property-value" aria-labelledby="credit-label">100</div>
</li>
В результате id 1 форматируется без метки слева, тогда как остальные поля отцентрированы и имеют метку.
Есть ли простой способ "grails" исправить это? Один из вариантов - скопировать идентификатор в новое поле объекта домена с именем «theId» или аналогичным, используя событие, чтобы его всегда можно было легко отобразить.
Еще один вариант, который, как мне показалось, может сработать, - это создание пользовательской оболочки для каждого пропущенного поля. Однако, поскольку он должен использовать упорядоченный список, он оставляет большой разрыв между полем id и остальными полями (но, по крайней мере, он отчасти центрирован по метке с использованием этого метода.
Я создал fole Views / _fields / id / _displayWrapper.gsp и вставил в него:
<ol class="property-list transaction">
<li class="fieldcontain">
<span id="${property}-label" class="property-label">${property}</span>
<div class="property-value" aria-labelledby="${property}-label">${value}</div>
</li>
</ol>
Тогда, на мой взгляд, у меня есть:
<f:display bean="transaction" property="id" wrapper="id"/>
<f:display bean="transaction"/>
Однако из-за большого вертикального разрыва между id и остальными полями это тоже не вариант.