古いJavaプロジェクトをセットアップしてGrailsに再設計しようとしています。GGTS 3.1.0.Releaseを使用しており、ドメインモデルを構成しました。私の問題は、コントローラーとビューの自動生成を使用すると([プロジェクト]->[新規]->[コントローラーとビューの生成]を右クリック)、ファイルは生成されますが、属性がすべて含まれているわけではないことです。このスキャフォールディングにより、ドメインクラスのすべての属性を含むビューが利用可能になると思いました。私が間違っている?
アソシエイトクラス:
package com.trading.core
class Associate {
Integer id
String name
String address
Prefecture prefecture
SubPrefecture subPrefecture
Municipal municipal
String city
BigDecimal minDiscount
String zipcode
User insUser
Date insDatetime
User updtUser
Date updtDatetime
static mapping = {
table "associate"
id generator: 'identity'
minDiscount column:"min_discount"
insUser column: "ins_user"
insDatetime column: "ins_datetime"
updtUser column: "updt_user"
updtDatetime column: "updt_datetime"
municipal column: "municipal"
subPrefecture column: "sub_prefecture"
prefecture column: "prefecture"
version false
}
static constraints = {
}
}
list.gsp(生成)
<%@ page import="com.trading.core.Associate" %>
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main">
<g:set var="entityName" value="${message(code: 'associate.label', default: 'Associate')}" />
<title><g:message code="default.list.label" args="[entityName]" /></title>
</head>
<body>
<a href="#list-associate" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
<div class="nav" role="navigation">
<ul>
<li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
<li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
</ul>
</div>
<div id="list-associate" class="content scaffold-list" role="main">
<h1><g:message code="default.list.label" args="[entityName]" /></h1>
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<table>
<thead>
<tr>
<g:sortableColumn property="name" title="${message(code: 'associate.name.label', default: 'Name')}" />
<g:sortableColumn property="address" title="${message(code: 'associate.address.label', default: 'Address')}" />
<g:sortableColumn property="city" title="${message(code: 'associate.city.label', default: 'City')}" />
<g:sortableColumn property="insDatetime" title="${message(code: 'associate.insDatetime.label', default: 'Ins Datetime')}" />
<th><g:message code="associate.insUser.label" default="Ins User" /></th>
<g:sortableColumn property="minDiscount" title="${message(code: 'associate.minDiscount.label', default: 'Min Discount')}" />
<th><g:message code="associate.municipal.label" default="Municipal" /></th>
</tr>
</thead>
<tbody>
<g:each in="${associateInstanceList}" status="i" var="associateInstance">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
<td><g:link action="show" id="${associateInstance.id}">${fieldValue(bean: associateInstance, field: "address")}</g:link></td>
<td>${fieldValue(bean: associateInstance, field: "city")}</td>
<td><g:formatDate date="${associateInstance.insDatetime}" /></td>
<td>${fieldValue(bean: associateInstance, field: "insUser")}</td>
<td>${fieldValue(bean: associateInstance, field: "minDiscount")}</td>
<td>${fieldValue(bean: associateInstance, field: "municipal")}</td>
</tr>
</g:each>
</tbody>
</table>
<div class="pagination">
<g:paginate total="${associateInstanceTotal}" />
</div>
</div>
</body>
</html>