Grails 2.0.4(一)

1.grails create-app trip-planner
2.

class Trip { 
  String name
  String city
  Date startDate
  Date endDate
  String purpose
  String notes
}


3.grails generate-all Trip
生成

class TripController{
...
def list() {
        params.max = Math.min(params.max ? params.int('max') : 10, 100)
        [tripInstanceList: Trip.list(params), tripInstanceTotal: Trip.count()]
    }
...
}


4./demo/grails-app/views/trip/list.gsp

	<tbody>
				<g:each in="${tripInstanceList}" status="i" var="tripInstance">
					<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
					
						<td><g:link action="show" id="${tripInstance.id}">${fieldValue(bean: tripInstance, field: "city")}</g:link></td>
					
						<td><g:formatDate date="${tripInstance.endDate}" /></td>
					
						<td>${fieldValue(bean: tripInstance, field: "name")}</td>
					
						<td>${fieldValue(bean: tripInstance, field: "notes")}</td>
					
						<td>${fieldValue(bean: tripInstance, field: "purpose")}</td>
					
						<td><g:formatDate date="${tripInstance.startDate}" /></td>
					
					</tr>
				</g:each>
				</tbody>


tripInstance 就是controller  list()中的键

 [tripInstanceList: Trip.list(params), tripInstanceTotal: Trip.count()]



5.run-app
http://localhost:8080/demo


Grails 2.0.4(一)_第1张图片

Grails 2.0.4(一)_第2张图片

Grails 2.0.4(一)_第3张图片

Grails 2.0.4(一)_第4张图片

 

6. TripController 中

 对控制器的理解可以归结为三个 Rreturnredirectrender 。有些动作利用隐式的 return 语句将数据返回到具有相同名称的 GSP 页面。有些动作进行重定向。例如,如果 URL 中未指定动作,则将调用 index

 def index() {
        redirect(action: "list", params: params)
    }

在此,TripController 重定向到 list 动作,同时传递 params hashmap 中的所有的参数(或 QueryString )。

save()方法重定向到create,

 

def save() {
        def tripInstance = new Trip(params)
        if (!tripInstance.save(flush: true)) {
            render(view: "create", model: [tripInstance: tripInstance])
            return
        }

		flash.message = message(code: 'default.created.message', args: [message(code: 'trip.label', default: 'Trip'), tripInstance.id])
        redirect(action: "show", id: tripInstance.id)
    }

 7.可以通过输入 grails -Dserver.port=9090 run-app 临时进行更改。

 

 

 

 

 

 

你可能感兴趣的:(grails)