【发布时间】:2015-06-18 12:12:03
【问题描述】:
在我的索引页面上,我想显示另一个类的所有实例。考虑到它们以相同的方式在 gsp 中为您显示所有控制器,这应该不难。
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main"/>
<title>College Now Portal</title>
<style type="text/css" media="screen">
#status {
background-color: #eee;
border: .2em solid #fff;
margin: 2em 2em 1em;
padding: 1em;
width: 12em;
float: left;
-moz-box-shadow: 0px 0px 1.25em #ccc;
-webkit-box-shadow: 0px 0px 1.25em #ccc;
box-shadow: 0px 0px 1.25em #ccc;
-moz-border-radius: 0.6em;
-webkit-border-radius: 0.6em;
border-radius: 0.6em;
}
.ie6 #status {
display: inline; /* float double margin fix http://www.positioniseverything.net/explorer/doubled-margin.html */
}
#status ul {
font-size: 0.9em;
list-style-type: none;
margin-bottom: 0.6em;
padding: 0;
}
#status li {
line-height: 1.3;
}
#status h1 {
text-transform: uppercase;
font-size: 1.1em;
margin: 0 0 0.3em;
}
#page-body {
margin: 2em 1em 1.25em 18em;
}
h2 {
margin-top: 1em;
margin-bottom: 0.3em;
font-size: 1em;
}
p {
line-height: 1.5;
margin: 0.25em 0;
}
#controller-list ul {
list-style-position: inside;
}
#controller-list li {
line-height: 1.3;
list-style-position: inside;
margin: 0.25em 0;
}
@media screen and (max-width: 480px) {
#status {
display: none;
}
#page-body {
margin: 0 1em 1em;
}
#page-body h1 {
margin-top: 0;
}
}
</style>
</head>
<body>
<sec:ifAllGranted roles="ROLE_ADMIN">
<a href="#page-body" class="skip"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
<div id="status" role="complementary">
<h1>Application Status</h1>
<ul>
<li>App version: <g:meta name="app.version"/></li>
<li>Grails version: <g:meta name="app.grails.version"/></li>
<li>Groovy version: ${GroovySystem.getVersion()}</li>
<li>JVM version: ${System.getProperty('java.version')}</li>
<li>Reloading active: ${grails.util.Environment.reloadingAgentEnabled}</li>
<li>Controllers: ${grailsApplication.controllerClasses.size()}</li>
<li>Domains: ${grailsApplication.domainClasses.size()}</li>
<li>Services: ${grailsApplication.serviceClasses.size()}</li>
<li>Tag Libraries: ${grailsApplication.tagLibClasses.size()}</li>
</ul>
<h1>Installed Plugins</h1>
<ul>
<g:each var="plugin" in="${applicationContext.getBean('pluginManager').allPlugins}">
<li>${plugin.name} - ${plugin.version}</li>
</g:each>
</ul>
</div>
</sec:ifAllGranted>
<div id="page-body" role="main">
<sec:ifLoggedIn>
<p>Logged in as ${sec.username()} | <g:link controller='Logout' action=''>logout</g:link></p>
</sec:ifLoggedIn>
<sec:ifNotLoggedIn>
<p>Welcome to College Now Portal, please <g:link controller='Login' action=''>login</g:link></p>
</sec:ifNotLoggedIn>
<div id="controller-list" role="navigation">
<ul>
<%--
COMMENTED OUT GSP CONTROLLER LIST
--%>
<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.shortName } }">
<li class="controller"><g:link controller="${c.logicalPropertyName}">${c.shortName}</g:link></li>
</g:each>
<sec:ifAnyGranted roles="ROLE_ADMIN,ROLE_COORDINATOR,ROLE_LIAISON,ROLE_TEACHER">
<h1>Select a group to manage:</h1>
<h1 style="background-color:black; color:white; width:50%">People</h1>
<li class="controller"><a href="/collegenowapp/liaison/index">Liaisons</a></li>
</sec:ifAnyGranted>
<sec:ifAnyGranted roles="ROLE_ADMIN,ROLE_COORDINATOR">
<li class="controller"><a href="/collegenowapp/student/index">Students</a></li>
</sec:ifAnyGranted>
<sec:ifAnyGranted roles="ROLE_ADMIN,ROLE_COORDINATOR,ROLE_LIAISON">
<li class="controller"><a href="/collegenowapp/teacher/index">Teachers</a></li>
</sec:ifAnyGranted>
<sec:ifAnyGranted roles="ROLE_ADMIN,ROLE_COORDINATOR,ROLE_LIAISON,ROLE_TEACHER">
<h1 style="background-color:black; color:white; width:50%">Items</h1>
<li class="controller"><a href="/collegenowapp/book/index">Books</a></li>
<sec:ifAnyGranted roles="ROLE_ADMIN,ROLE_COORDINATOR,ROLE_LIAISON">
<li class="controller"><a href="/collegenowapp/course/index">Courses</a></li>
<li class="controller"><a href="/collegenowapp/discipline/index">Disciplines</a></li>
<li class="controller"><a href="/collegenowapp/school/index">Schools</a></li>
<li class="controller"><a href="/collegenowapp/section/index">Sections</a></li>
</sec:ifAnyGranted>
</sec:ifAnyGranted>
</ul>
</div>
</div>
</div>
<!-- SHOWING MEETINGS ON INDEX PAGE-->
<table>
<thead>
<tr>
<th><g:message code="meetings.liaison.label" default="Liaison" /></th>
<th><g:message code="meetings.place.label" default="Place" /></th>
<th><g:message code="meetings.teacher.label" default="Teacher" /></th>
<th><g:message code="meetings.time.label" default="Time" /></th>
</tr>
</thead>
<tbody>
<g:each in="${meetingsInstanceList}" var="meetingsInstance">
<tr>
<td><g:link action="show" id="${meetingsInstance.id}">${fieldValue(bean: meetingsInstance, field: "liaison")}</g:link></td>
<td>${fieldValue(bean: meetingsInstance, field: "place")}</td>
<td>${fieldValue(bean: meetingsInstance, field: "teacher")}</td>
<td><g:formatDate format="MM-dd-yyyy' at 'hh:mm' 'a" date="${meetingsInstance.time}" /></td>
</tr>
</g:each>
</tbody>
</table>
<div class="pagination">
<g:paginate total="${meetingsInstanceCount ?: 0}" />
</div>
</body>
</html>
我不知道如何为索引页编写查询。文档非常小。请从头开始提供任何帮助。这段代码几乎可以工作。我返回的列表返回空。如果我在上面贴上标签,它会说列表为空。它不会读取任何内容。
【问题讨论】:
-
什么是错误或问题?例外? “会议”是域类还是列表?为什么还要再次引用它作为控制器?很可能是
controller="meetings" action="show" params="${id:it.id}" -
会议是一个领域类。错误是参数不正确或某些语法。我只是做得不对。我想查询,但没有关于如何在 gsp 和控制器之间进行设置的文档。
-
那么请描述你的最终目标是什么,而不是提供一些编造的代码,这是行不通的。对于“无文档”,请参阅:grails.github.io/grails-doc/latest/ref/Tags/link.html 和 grails.github.io/grails-doc/latest/guide/…
-
我希望我能显示更多相关信息,但这是我最好的尝试,抱歉我无法写出完美的问题,因为我不知道答案。我最好的描述在上面,并说我想在索引页面上显示域类的所有实例......不知道该怎么做。那是我的最终目标,并且在上面。不过我喜欢这些指南,我会检查出来的。关于查询的分步指南并不多,只是这里是你如何做的......我在哪里做的?控制器?域?控制台?....
-
是的,您可以在控制器或服务中运行查询。这些结果建立了你的模型。该模型将在视图中使用。在视图中处理逻辑/域/...是不好的做法。
标签: grails grails-orm gsp