wicket-单击“上一步”按钮时页面已过期
我在有状态页面中使用wicket 7,每次切换到新页面时,我都会使用如下代码:wicket-单击“上一步”按钮时页面已过期,wicket,wicket-7,Wicket,Wicket 7,我在有状态页面中使用wicket 7,每次切换到新页面时,我都会使用如下代码: PageParameters pageParameters = new PageParameters(); setResponsePage(new SecondPage(pageParameters)); 每更改一个页面,就会创建一个新的页面版本,并且页面ID会增加一个。 但当我试图加载上一页时,我从浏览器中单击“上一页”按钮,该页总是过期 我在程序中使用此getApplication时发现问题,无法加载上一页。如
PageParameters pageParameters = new PageParameters();
setResponsePage(new SecondPage(pageParameters));
每更改一个页面,就会创建一个新的页面版本,并且页面ID会增加一个。
但当我试图加载上一页时,我从浏览器中单击“上一页”按钮,该页总是过期
我在程序中使用此getApplication时发现问题,无法加载上一页。如果排除getApplication,则可以加载上一页
public class BasePage extends WebPage {
private ServletContext servletContext;
private boolean developmentMode;
public BasePage() {
NextApp app = (NextApp) getApplication();
servletContext = app.getServletContext();
developmentMode = app.usesDevelopmentConfig();
/** other code **/
}
}
请帮助我,如何使用getApplication,我也可以加载上一页?
PageExpiredException
的javadoc说:
Thrown when a {@link Page} instance cannot be found by its id in the page stores. The page may be
* missing because of reasons like:
* <ul>
* <li>the page have never been stored there, e.g. an error occurred during the storing process</li>
* <li>the http session has expired and thus all pages related to this session are erased too</li>
* <li>the page instance has been erased because the store size exceeded</li>
* @see HttpSession#setMaxInactiveInterval(int)
* @see org.apache.wicket.settings.StoreSettings#setMaxSizePerSession(org.apache.wicket.util.lang.Bytes)
* @see NotSerializableException
当页面存储区中的{@link Page}实例的id找不到该实例时,引发。这一页可能是
*失踪原因如下:
*
*- 页面从未存储在那里,例如,存储过程中发生错误
*- http会话已过期,因此与此会话相关的所有页面也将被擦除
*- 页面实例已被擦除,因为超出了存储大小
*@请参阅HttpSession#setMaxInactivativeInterval(int)
*@see org.apache.wicket.settings.StoreSettings#setMaxSizePerSession(org.apache.wicket.util.lang.Bytes)
*@请参阅NotSerializableException
检查这些是否为真
我还建议您使用:setResponsePage(SecondPage.class、,
新页面参数())代码>PageExpiredException
的javadoc说:
Thrown when a {@link Page} instance cannot be found by its id in the page stores. The page may be
* missing because of reasons like:
* <ul>
* <li>the page have never been stored there, e.g. an error occurred during the storing process</li>
* <li>the http session has expired and thus all pages related to this session are erased too</li>
* <li>the page instance has been erased because the store size exceeded</li>
* @see HttpSession#setMaxInactiveInterval(int)
* @see org.apache.wicket.settings.StoreSettings#setMaxSizePerSession(org.apache.wicket.util.lang.Bytes)
* @see NotSerializableException
当页面存储区中的{@link Page}实例的id找不到该实例时,引发。这一页可能是
*失踪原因如下:
*
*- 页面从未存储在那里,例如,存储过程中发生错误
*- http会话已过期,因此与此会话相关的所有页面也将被擦除
*- 页面实例已被擦除,因为超出了存储大小
*@请参阅HttpSession#setMaxInactivativeInterval(int)
*@see org.apache.wicket.settings.StoreSettings#setMaxSizePerSession(org.apache.wicket.util.lang.Bytes)
*@请参阅NotSerializableException
检查这些是否为真
我还建议您使用:setResponsePage(SecondPage.class、,
新页面参数())代码>我已经尝试使用implements Serializable和setResponsePage(SecondPage.class,new PageParameters());但是结果还是一样的..我已经尝试使用implements Serializable和setResponsePage(SecondPage.class,new PageParameters());但是结果仍然是一样的。你能增加并检查你的评分到期时间吗?我已经设置了
,但是当我点击上一个按钮时,它会立即到期。这真的很奇怪。不会,因为你说的是所有的页面都在创建页面ID,你也为表单设置了版本。因为表单没有版本控制。最重要的是,马丁回答得很好。如果这能解决你的问题,你需要提出更多的细节。IMO@randy你解决问题了吗?没有。。我不能解决这个问题@soorapadman你能帮我给我一个最好的例子来编码有状态的页面吗?你的session expiration time30
可以增加并检查吗。@soorapadman我已经设置了
,但是当我点击“上一步”按钮时,它会立即过期,这真的很奇怪。不会,因为你说的是所有的页面都在创建页面ID,你也为表单设置了版本。因为表单没有版本控制。最重要的是,马丁回答得很好。如果这能解决你的问题,你需要提出更多的细节。IMO@randy你解决问题了吗?没有。。我不能解决这个问题@soorapadman你能帮我给我一个编写有状态页面的最好例子吗?