Wicket setResponsePage()方法如何工作?

在了解JSP和servlet时,我听说了重定向和调度。 Wicket的setResponsePage()执行了哪些操作?

setResponsePage作用取决于几个因素:您调用setResponsePage的次数,您调用的setResponsePage的哪个变体以及您使用的渲染策略。

您可以在请求期间多次调用setResponsePage 。 Wicket使用最后一个工作。

setResponsePage有两种变体:带有Page实例,带有Page类和PageParameters 。 后者将重定向发送到浏览器的可collectionsURL。 根据渲染策略 ,前者将:

  • ONE_PASS_RENDER
    • 将页面直接呈现给浏览器
  • REDIRECT_TO_BUFFER
    • 将页面呈现到缓冲区,将重定向发送到浏览器(然后检索缓冲的,呈现的标记),或
  • REDIRECT_TO_RENDER
    • 向浏览器发送重定向,然后发送请求以呈现页面

所以第一个选项是dispatch,第二个选项是dispatch,后跟重定向,第三个选项是servlet术语中的重定向。

setResponsePage(PageName.class)会将浏览器重定向到您需要的PageName。 确保您已将Page.class挂载到给定路径。 例如,在您的Application init方法中,您可以像mount这样挂载(“/ home.html”,WelcomePage.class); 然后在其他一些页面中,当你需要转到主页时,你就像这样调用setResponsePage(WelcomePage.class);