Controller中的PageRenderer

时间:2017-08-03 20:41:27

标签: grails

我们可以在控制器中实现PageRender(grails 3.2.8)吗?我尝试过服务,它按预期工作得很好。 但是当我在控制器中尝试时,我没有得到预期的结果。

控制器:

class TestcontrollerController {
    def RenderService
    def gsp= "grails"
    PageRenderer groovyPageRenderer

    def index(String gsp) {
        render creategsp()
    }

    def creategsp() {
        groovyPageRenderer.render view: '/email/confirm', model: [gsp: findgsp()]
    }

    def findgsp() {
        '<g:select from="${18..65}" value="${age}" />'
    }
}

index.gsp中:

<g:render template="/test/samplePage" />

samplePage.gsp:

<g:render template="/email/welcome" />

_display.gsp:

Hi ,{username} <br>

PageRenderer未呈现任何自定义标记或grails标记。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

是的,这是完全可能的。只需在控制器顶部定义它:

PageRenderer groovyPageRenderer

请注意,您需要强烈输入此内容,而不仅仅是“def”它。

然后当你使用它时,它会将页面呈现给字符串:

String renderViewResult = groovyPageRenderer.render(view: "/myViewName", model: renderModel)

如果您使用更多详细信息更新您的问题,例如您做了什么,哪些无效,可能有人可以帮助您更多,但大局:是的,它有效!