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