How does Wicket setResponsePage() method work?

拟墨画扇 提交于 2019-12-05 10:46:06

What setResponsePage does is dependent on a couple of factors: how many times you call setResponsePage, which variant of the setResponsePage you call and what render strategy you use.

You can call setResponsePage many times during a request. Wicket uses the last one to work with.

There are two variants of setResponsePage: with a Page instance and with a Page class and PageParameters. The latter sends a redirect to a bookmarkable URL to the browser. The former will, depending on the render strategy, either:

  • ONE_PASS_RENDER
    • render the page directly to the browser
  • REDIRECT_TO_BUFFER
    • render the page to a buffer, send a redirect to the browser (which then retrieves the buffered, rendered markup), or
  • REDIRECT_TO_RENDER
    • send a redirect to the browser, which then sends a request to render the page

So the first option is dispatch, the second option is dispatch followed by a redirect, and the third option would be redirect in servlet terms.

setResponsePage(PageName.class) will redirect the browser to the PageName you need to go. Make sure that, you have already mount your Page.class to a given path. For example, in your Application init method, you can mount like this mountPage("/home.html", WelcomePage.class); then in some other page, when you have a need to go to the home page, you just call like this setResponsePage(WelcomePage.class);

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!