使用grails,可以轻松显示域对象的所有字段,例如:
<f:display bean="transaction"/>
但是,对于该特定域,这没有显示两个关键属性,即id和dateCreated。
我尝试了except =“”和except =“ []”,但这不起作用(我认为它仅适用于f:table)。
一种想法是显示缺少的字段以及bean字段,即:
<f:display bean="transaction" property="id"/>
<f:display bean="transaction"/>
但这会导致输出格式错误。产生id的html:
<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的格式设置为左侧不带标签,而其余字段则居中并带有标签。
是否有简单的“办法”来解决此问题?一种选择是使用事件将ID复制到域对象“ theId”或类似名称的新字段中,以便始终可以轻松显示它。
我认为可能可行的另一个选项是为每个缺少的字段创建一个自定义包装。但是,由于必须使用有序列表,因此在id字段和其余字段之间留有很大的差距(但至少使用这种方法它以标签为中心。
我创建了假的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和其余字段之间的垂直距离较大,因此也不是选择。