5

在学习 JSP 和 servlet 时,我听说过重定向和分派。威克特setResponsePage()表演的是哪一个?

4

2 回答 2

19

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

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

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

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

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

于 2012-04-11T06:22:23.350 回答
1

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

于 2013-04-09T16:22:27.753 回答