How does Wicket setResponsePage() method work?

限于喜欢 提交于 2019-12-07 06:57:55

问题


When learning about JSP and servlets, I heard about redirect and dispatch. Which of them does Wicket's setResponsePage() perform?


回答1:


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.




回答2:


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);



来源:https://stackoverflow.com/questions/10093539/how-does-wicket-setresponsepage-method-work

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