2015-10-20 78 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