2015-10-20 48 views
1

我使用Java创建了PlayFramework 2.2的应用程序。有没有办法在PlayFramework中从模型中获取会话信息?

保存模型时,我想将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; 
    } 
    } 
} 

回答

1

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

+0

我使用'play.mvc.Http.Context.current()。session()'和'play.mvc.Http.Session.get()'。我能够获得会话信息。 我使用了不同的方式,但感谢您的评论。 – mrdShinse

相关问题