2016-08-19 24 views
1

我試圖在新的grails應用程序中將index.gsp與index.jsp切換。我將默認的index.gsp重命名爲not_index.gsp並添加了index.jsp。現在我收到以下錯誤。在grails中使用index.jsp

javax.servlet.ServletException: Could not resolve view with name '/index' in servlet with name 'grailsDispatcherServlet' 
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1229) 

這是出乎意料的,因爲documentation說:

的Grails也支持JSP作爲視圖,因此如果GSP沒有在 預期位置找到,但一個JSP是,它將被使用代替。

我在做什麼錯?

爲什麼?我正在嘗試將一個非常舊的應用程序(僅限jsp)轉換爲grails,並希望查看是否可以在沒有問題的情況下刪除index.jsp。

+0

挺你可以寫幾乎是用JSP編寫的一個GSP的一切,這就像你可以在Groovy代碼編寫任何Java代碼。所以最好將它重命名爲'.gsp' –

+0

另外,如果您使用的是Grails 3,您爲創建新的Grails應用程序輸入了什麼命令? –

+0

爲什麼文檔說它支持JSP視圖呢?我只做了'grails create-app'。我應該使用另一個命令嗎? –

回答

0

檢查您的UrlMappings文件。 Grails中3,其在grails-app/controllers/UrlMappings.groovy 在Grails的2其在grails-app/conf/UrlMappings.groovy

指數在默認情況下

"/"(view:"/index") 

映射,但是因爲你是/指數,你可以添加以下到您的UrlMappings

"/index"(view:"/index") 

您的索引視圖需要位於正確的位置,在Grails 2我的位於

grails-app/views/index.gsp 

我同意,你應該嘗試重命名你的.gsp

+0

我試過「/」(view:"/index.jsp「),但沒有奏效。當我回家時我會試試這個。我想離開jsp,但我想先讓應用程序轉換爲在Grails中運行。重命名是更多的工作,因爲有很多包含指令和變量在包含之間共享。也許我可以把這些變量放在請求範圍中,以便在gsp包含之間傳遞它們,但現在使用jsp會更容易。 –

+0

在我的Grails網頁上,我嘗試導航到'my_grails_url/index' - 這不起作用!但是,導航到「my_grails_url /」確實有效。在你的UrlMappings中,我認爲你需要添加「/ index」(view:「/ index」)來讓'your_url/index'工作。您可能會認爲your_url/index默認會在UrlMappings中路由,但在我的項目中,我的測試顯示它不是。 –

+0

我不認爲這有效。你確定你有一個jsp頁面,而不是一個gsp頁面嗎? –