Can';grails中的t access index.gsp

Can';grails中的t access index.gsp,grails,gsp,grails-controller,Grails,Gsp,Grails Controller,我是grails的新手,我正在尝试访问索引页面。在删除grails的默认主页之后,我发现了以下错误 404 App1/WEB-INF/grails-app/views/index.jsp description The requested resource is not available. 我检查了UrlMapping,并将视图设置为索引 "/"(view:"/index") "500"(view:'/error') 我的控制器类 package App1grailsa

我是grails的新手,我正在尝试访问索引页面。在删除grails的默认主页之后,我发现了以下错误 404 App1/WEB-INF/grails-app/views/index.jsp

description The requested resource is not available. 
我检查了UrlMapping,并将视图设置为索引

    "/"(view:"/index")
    "500"(view:'/error')
我的控制器类

package  App1grailsapp

class TeamController {

 def index() { }

    def teams()
    {
        [teams:Team.list()]
    }


}
我有两个普惠制网页

索引

<!--
  To change this license header, choose License Headers in Project Properties.
  To change this template file, choose Tools | Templates
  and open the template in the editor.
-->

<!DOCTYPE html>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sample title</title>
    </head>
    <body>
      <h2><g:message code="welcome"/></h2>

        <ul>
            <li><g:link action="teams">Display all teams</g:link></li>

        </ul>
    </body>
</html>

示例标题
  • 显示所有团队
和团队

<html>
    <head>
        <meta name="layout" content="main">
        <title>Teams</title>
    </head>
    <body>
        <h2>Teams:</h2>

        <table>
            <tr>
            <thead>
                <th>Name</th>

            </thead>
            </tr>
            <g:each var="team" in="${teams}">
                <tr>
                    <td>${team.name}</td>

                </tr>
            </g:each>
        </table>
    </body>
</html>

团队
小组:
名称
${team.name}

我不明白为什么没有显示index.gsp页面?

Grails的视图分辨率基于约定。每个控制器在grails app/views下都有一个目录,用于关联视图。除非另行指定(通过渲染),否则显示的视图将与控制器操作名称匹配

在您的情况下,您需要将
index.gsp
移动到
grails app/views/
并在
grails app/views/team
下将
teams.gsp
重命名为
index.gsp

希望这有帮助。您可能需要查看以获取更多信息和见解

此外,您还需要指定链接使用哪个控制器来显示所有团队

<li><g:link controller="team" action="index">Display all teams</g:link></li>
  • 显示所有团队

  • 您的GSP页面在项目中的位置?在视图和布局下根据您发布的内容,您应该在grails app/views/team/index.GSP下具有index.GSP这是您访问团队URI时要呈现的视图。然而,我认为这不是你想要的。如果要显示teams.gsp,需要渲染(视图:“teams”,模型:[teams:teams.list()]),并在grails app/views/team/teams.gsp下显示teams.gsp。默认的index.gsp应该在grails app/views/index.gspyes下,没错,它在view/team/index.gsp下,但没有显示请看我的答案。如果您仍然感到困惑,我们可以开始聊天/对话,我可以带您完成。