Grails 2.5:找不到 GSP 文件的资源 (404)

Grails 2.5 : Resource not found (404) for GSP file

我正在将我的 Grails 应用程序从版本 1.x 升级到 2.5,在版本 2.5 中遇到这个问题,但在版本 1.x

中运行良好

在 GSP 文件 (connect.gsp) 中,我正在尝试打开另一个 gsp rename.gsp。此 rename.gsp 文件与 connect.gsp 的位置相同。但是,找不到文件,并在弹出窗口中显示 404-Resource not found 错误。

connect.gsp(javascript 代码)

showPopWin("${request.getContextPath()}/user/rename.gsp", 280, 160, returnFunction);

gsp 文件的位置:

grails-app
     - views
          -user
              -connect.gsp
              -rename.gsp

Grails 2.x 版本中是否更改了与 GSP 文件加载相关的任何内容?请帮忙!

我认为 grails 正在寻找 url 映射。

您应该在控制器中创建一个动作,这个动作必须呈现 gsp 文件。

简单的例子:

CustomcontrolController {

    def renamedisplay()
    {
        render(view: '/user/rename')
    }
}

然后默认情况下 grails 将映射以下 url :

showPopWin("${request.getContextPath()}/customcontrol/renamedisplay", 280, 160, returnFunction);

或者您可以通过编辑 UrlMappings.groovy

指定不是由 grails 生成的特定 url

Grails 提供重定向未来以便从另一个操作调用一个操作。 但是这里当连接动作是 get 调用然后重定向到重命名动作

   def userController () {
           def connect () {

              redirect(action: "rename")
              //  or redirect(controller: "user", action: "rename") 
           } 
          def rename() {

          } 
 }

如果想从 connect.gsp 呼叫 rename.gsp,您可以使用 window.location.href

window.location.href="${request.getContextPath()}/user/rename" 
or

window.location.href="${request.getContextPath()}/user/rename.gsp"

看起来 Grails 中的资源渲染发生了变化 2.x

我添加了以下解决方法:

在我必须从另一个 gsp 调用 gsp 页面(不是控制器操作)的地方,然后先将其提交给控制器操作,然后从那里使用渲染转到相应的 gsp 文件。

也就是在connect.gsp

showPopWin("${request.getContextPath()}/user/renameUI", 280, 160, returnFunction);

在 UserController 中添加一个动作 renameUI,

def renameUI= {
    render( view : 'rename', model:[params:params])
}