4

我需要找出 grails GSP 文件的物理路径。

我的要求是我想在运行时创建一个新的布局文件并在应用程序中使用它。

当应用程序在码头(grails run-app)上运行时,我已经能够毫无问题地实现这一点,但是,当我在 Jboss 上部署应用程序时,需要创建文件的路径会发生变化。

所以,理想情况下,我想在运行时使用一些神奇的实用程序找出特定 GSP 的路径(比如说 main.gsp 布局文件),我需要在 main.gsp 所在的同一目录中创建我的新布局。

任何指针?

-迪帕克

4

3 回答 3

9

这是一些在生产环境中查找布局文件夹路径的常规代码(例如,当部署为 jboss 上的战争时):

import org.codehaus.groovy.grails.commons.ApplicationHolder

...

File layoutFolder = ApplicationHolder.application.parentContext.getResource("WEB-INF/grails-app/views/layouts").file      
def absolutePath = layoutFolder.absolutePath
println "Absolute Path to Layout Folder: ${absolutePath}"
File newLayoutFile = new File(layoutFolder, "foo.gsp")

要使用新创建的布局,您可能需要重新启动 Web 应用程序或容器,因为视图是在生产模式下进行的。

于 2009-01-29T11:17:56.830 回答
2

有一个确定的方法...

grailsApplication.parentContext.getResource("WEB-INF/grails-app/views/path/to/my.gsp").file.toString()

没有控制器(例如引导程序)?注入就行了。。

def grailsApplication

最好的祝福!

于 2010-08-19T02:49:56.870 回答
1

在控制器中,您可以使用

grailsAttributes.getApplicationContext().getResource("/relative/path/").getFile().toString()
于 2010-04-25T02:06:17.120 回答