Wicket 如何在没有版本控制的情况下创建可书签状态页面?
Wicket为页面和页面链接(afaik)提供以下概念: 可书签链接不依赖于任何会话信息。URL可能不包含会话ID、版本号等 有状态页面存储在服务器上,以便稍后在会话中使用(例如,用于AJAX通信或浏览器的后台功能)。对于每个请求,总是新创建无状态页面 页面版本控制为每个请求创建一个页面实例版本,并将其存储在会话中。每个版本都有一个会话唯一id,该id在页面链接中用于直接寻址特定版本。url如下所示(“8”表示此会话中配置文件页面的第8个版本):Wicket 如何在没有版本控制的情况下创建可书签状态页面?,wicket,versioning,bookmarks,stateful,Wicket,Versioning,Bookmarks,Stateful,Wicket为页面和页面链接(afaik)提供以下概念: 可书签链接不依赖于任何会话信息。URL可能不包含会话ID、版本号等 有状态页面存储在服务器上,以便稍后在会话中使用(例如,用于AJAX通信或浏览器的后台功能)。对于每个请求,总是新创建无状态页面 页面版本控制为每个请求创建一个页面实例版本,并将其存储在会话中。每个版本都有一个会话唯一id,该id在页面链接中用于直接寻址特定版本。url如下所示(“8”表示此会话中配置文件页面的第8个版本):http://.../wicket7/profil
http://.../wicket7/profile?8
Wicket文档提到了以下内容:
- 无状态页面始终具有可书签链接(有意义…)
- 不可书签的链接总是指向有状态的页面(好的,逻辑相反…)
- 有状态页面可能同时具有可书签链接和不可书签链接
getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
查看更多信息。您不希望存储页面的多个版本,或者在URL后面附加一个数字,这两种方法都是:版本控制需要URL中的页面id(如“…profile?8”),这使得它们不可作为书签(对我来说是一个缺点)。如果我不需要版本控制,那么我希望ID从url中消失(它们不是必需的)。这将导致可设置书签的URL。这有意义吗?我怎样才能做到这一点呢?
?8
不会阻止书签,也不会重新创建页面的状态。它只告诉Wicket该页面是会话中的第8个页面,并且有相关的状态。但是,如果您的页面安装在例如/profile
下,并且具有无参数构造函数(或具有PageParameters的构造函数),则Wicket能够实例化该页面,?8
将更改为会话的当前页面指针。