Я хочу сделать ссылку с этой страницы, перейти на страницу с подробной информацией, но я получаю ошибку 404.
Here is the gsp:
<%@ page import="tictoc.Store" %>
<!doctype html>
<html>
<head>
<meta name="layout" content="main">
<g:set var="entityName" value="${message(code: 'store.label', default: 'Store')}" />
<title><g:message code="default.show.label" args="[entityName]" /></title>
</head>
<body>
<h1> Ticket Store </h1>
<div>
<table border=0 class="eventsTable">
<tr>
<th>Event</th>
<th>Start </th>
<th>End </th>
<th>Description</th>
</tr>
<g:each var="event" in="${events}">
<tr>
<td><g:link action="display" controller="store" id="${event.id}">
${event.name}
</g:link>
</td>
<td><g:formatDate format="MM/dd/yyyy" date="${event.startDate}"/></td>
<td><g:formatDate format="MM/dd/yyyy" date="${event.endDate}"/></td>
<td>${event.desc}</td>
</tr>
</g:each>
</table>
</div>
<div class="paginateButtons">
<g:paginate controller="store"
action="show"
max="5"
params="[name:active]"
total="${totalEvents}" />
</div>
</body>
</html>
Это контроллер, и у меня есть GSP с именем buy.gsp, который никогда не получаетпоказано на рисунке.
package tictoc</p>
<pre><code> import tictoc.Event
class StoreController {
Event event
static defaultAction = "activeEvents"
def show = {
log.error 'exec activeEvents'
activeEvents()
}
def activeEvents = {
log.error 'exec activeEvents'
params.max = Math.min(params.int('max', 5), 100);
params.offset = params.int('offset', 0)
params.total = Event.count()
params.sort = params.sort ?: "name";
params.order = params.order ?: "asc";
// def max = Math.min(params.int('max', 5), 100);
// def offset = params.offset?.toInteger() ?: 0
// def total = Event.count()
def eventList = Event.list(max: params.max, offset: params.offset)
return [events:eventList,
totalEvents:params.total,
active:params.active]
}
def detail = {
log.error 'exec detail'
def eventId = params.id
log.error 'eventId:' + eventId
render(view: "buy", model: [event: eventId])
}
def list = {
params.max = Math.min(params.int('max', 25), 100);
params.offset = params.int('offset', 0)
params.sort = params.sort ?: "name";
params.order = params.order ?: "asc";
return [ myList: DomainObject.list(params) ]
}
def display = {
println "display..........."
def event = Event.findById(params.id)
if(event) {
println "EVENT IS $event"
render(view:"buy", model:[event:event])
}
else {
response.sendError 404
}
}
}
</code>
Вот отображение URL:
class UrlMappings {
static mappings = { "/"(controller:"store", action:'show') }
}