我想知道与我的GSP(Grails服务器页面)或Groovy中的php要求完全相同的命令。
我知道我可以使用<g:include/>
,但想知道在groovy / grails中是否有任何命令可以满足php的要求?
最佳答案
确切的等效项实际上取决于PHP脚本中使用的require()
的上下文。
PHP和Servlet环境的运行方式不同。在PHP中使用require()
只是找到另一个PHP脚本并执行它。该命令式操作不适用于更面向对象的Java / Grails / Servlet。
根据您要完成的工作,有两种可能的等效方法:
<g:include/>
Includes the response of another controller/action or view in the current response
例如
<g:include controller="foo" action="bar"/>
这将执行一个不同的 Controller / Action 并将响应插入当前页面。如果您的
require()
呈现了一些标记,则这将类似于PHP。 如果您只是想在几页中包含通用标记,那么这些可能就是您想要的。您可以创建模板 View ,并使用
<g:render/>
将其包含在GSP中。我怀疑这是您要执行的操作,但是请参阅下面的“更新”以获取有关此问题的一些建议。 @page import
例如
<% @page import="com.example.mypackage.MyClass" %>
这将使
MyClass
可用于GSP,如果需求指定了一些要在其他PHP脚本中使用的库类或函数,则它将类似于require()
。但是,使用这种尖叫声代码会闻到,因为您将要使用的几乎所有内容都将更适合于 Controller 操作或服务。 更新:
看到other question,我敢冒险您只是尝试在几种不同的 View 中包含通用的GSP / HTML,这与Grails通过其布局和模板为您提供的内容有所抵触。
如果您要在所有GSP中“要求”,例如说“blog-header.php”,则您更可能只想将标题的内容包含在布局中,例如
grails-app/views/layouts/main.gsp
,然后在需要标题的 View 中使用该布局。
关于php - PHP require vs grails包括,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647243/