【问题标题】:Is there a way to get the session information from the Model in PlayFramework?有没有办法从 PlayFramework 中的模型中获取会话信息?
【发布时间】:2015-10-20 17:06:11
【问题描述】:

我使用 Java 通过 PlayFramework 2.2 创建应用程序。

保存Model时,我想保存create_user_id/update_user_id作为跟踪信息。 但是,无法从 PlayFramework 的模型中检索会话信息。

目前,我在保存实体时从 Controller 传递用户实体。 因为它是糟糕的实现,当您调用 Model.save() 方法从模型端的会话中获取登录用户时 我想像我们一样保存实施。

如果您知道最佳做法,请告诉我。

public abstract class AbstractTrailModel extends Model {

  public static final int INSERT = 1;
  public static final int UPDATE = 2;
  public static final int DELETE = 3;

  @ManyToOne(cascade = CascadeType.ALL)
  @Constraints.Required
  public User createUser;

  @ManyToOne(cascade = CascadeType.ALL)
  @Constraints.Required
  public User createUser;

  @Constraints.Required
  public Integer is_delete;


  public void save(User loginUser){

    if(create_time != null){
      setTrailInfo(UPDATE, loginUser);
      super.save();

    }else{
      setTrailInfo(INSERT, loginUser);
      super.save();
    }
  }


  public void setTrailInfo(int code, User loginUser){

    switch(code) {
      case INSERT:
        createUser = loginUser;
      case UPDATE:
      case DELETE:
        updateUser = loginUser;
    }

    if(code == DELETE){
      is_delete = 1;

    }else{
      is_delete = 0;
    }
  }
}

【问题讨论】:

    标签: java session playframework playframework-2.2 ebean


    【解决方案1】:

    据我所知,它只能从控制器获取会话。 如果您需要模型类上的用户,则需要在任何需要的地方传递会话或用户作为参数。

    【讨论】:

    • 我使用play.mvc.Http.Context.current().session()play.mvc.Http.Session.get()。我能够获得会话信息。我使用了不同的方式,但感谢您的评论。
    猜你喜欢
    • 2015-05-03
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2022-08-17
    • 2017-05-27
    • 1970-01-01
    相关资源
    最近更新 更多