2016-09-27 43 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"