java - 在 session 中保存模型

标签 java session model wicket

我将 Martijn 的方法用于 EntityModel:http://wicketinaction.com/2008/09/building-a-smart-entitymodel/

我使用 EntityModel 在我的自定义 wicket session 中存储数据。

 private IModel<Order> order;
 private IModel<User> user;

是这样设置的:

getSession().setOrder(new EntityModel<Order>(order));

我的应用程序是一个类似向导的订单交易,大约有 7、8 个连接页面。在一些页面中,一堆对象被持久化,但不是全部。因此,EntityModel 的使用允许我仅在 session 中存储非持久化对象,而持久化对象仅持有唯一 ID。

问题是 detach() 方法从未被调用,因为该模型不在任何组件中。

  • 将模型保存到 session 中是正确的方法吗?
  • 我是否必须在每个模型的 session 中手动调用 detach()

最佳答案

将模型附加到组件通常更容易,这样 Wicket 就可以为您分离,但是对于在许多页面之间共享的模型,您当然可以这样做。这就是在数据绑定(bind)器的 AuthDataSession 中处理用户模型的方式。 ,并且我已将此策略用于其他大量共享的模型。

如果您将内容存储在 Wicket 的 WebSession 的自定义扩展中,您可以覆盖 Wicket 的 Sessiondetach() 方法。扩展中的类:

@Override
protected void detach() {

    // detach the models you're holding in your custom session 
    // by calling all their detach methods.

    super.detach();
}

关于java - 在 session 中保存模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8443781/

相关文章:

java - 播放采样声音javax.sound.sampled时的巨大延迟

java - 使用 ProGuard 混淆时暴露内部类

sql - "Sessioning"事件流

php - $_SERVER ['HTTP_COOKIE' ] 返回的两个 PHPSESSID

gridview - Yii2:如何将查询参数添加到索引操作的searchModel而不影响gridview的过滤模型

c# - Entity Framework ,对布局相同但表名不同的两个表使用相同的模型

Java 7 规范 : variable identifiers are names, 但字段名称不是?为什么?

java - Android 4.4 上的资源 $NotFoundException

php - Codeigniter 从数组中获取标准对象值

php - CakePHP 中的模型验证