2016-09-27 70 views
0

我升级从1.x版本我的Grails应用程序到2.5,面向在2.5版本的问题,它工作得很好1.x版本中Grails的2.5:未找到资源(404),用于GSP文件

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

connect.gsp的GSP文件(javascript代码)

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

地点:

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

是与GSP文件加载任何Grails的2.x版改变了吗?请帮忙 !

回答

0

貌似资源呈现在Grails的2.x的改变

我在下面添加了解决方法:

在我有的地方从另一个gsp调用一个gsp页面(不是控制器动作),然后首先将它提交给控制器动作,然后从那里使用render到相应的gsp文件。

也就是说,在connect.gsp

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

在UserController中添加动作renameUI,

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

我认为grails正在寻找一个URL映射。

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

简单的例子:

CustomcontrolController { 

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

则默认情况下,Grails将映射以下网址:

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

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

0
指定不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"