0
在任何任務執行之前(因爲我的所有任務都需要一個init會話範圍變量才能運行),我需要在創建會話時準確創建會話範圍變量。因爲,HttpSession的會話實例是在創建會話時由grails應用程序自動創建的。開發者希望使用會話來存儲會話變量,只需使用'會話'實例。我無法找到init會話變量的放置位置。希望有人能幫助我。謝謝創建會話時在Grails中創建會話變量
在任何任務執行之前(因爲我的所有任務都需要一個init會話範圍變量才能運行),我需要在創建會話時準確創建會話範圍變量。因爲,HttpSession的會話實例是在創建會話時由grails應用程序自動創建的。開發者希望使用會話來存儲會話變量,只需使用'會話'實例。我無法找到init會話變量的放置位置。希望有人能幫助我。謝謝創建會話時在Grails中創建會話變量
你可以做的是有一個HttpSessionListener
監聽會話創建和會話刪除。
OU可以改變它從應用程序上下文拉:
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.codehaus.groovy.grails.commons.ApplicationHolder;
public class MySessionListener implements HttpSessionListener {
private MyListener myListener;
public void sessionCreated(HttpSessionEvent event) {
String id = event.getSession().getId();
getMyListener().sessionCreated(id);
}
public void sessionDestroyed(HttpSessionEvent event) {
String id = event.getSession().getId();
getMyListener().sessionDestroyed(id);
}
public void setMyListener(MyListener myListener) {
this.myListener = myListener;
}
private synchronized MyListener getMyListener() {
if (myListener == null) {
myListener = (MyListener)ApplicationHolder.getApplication().getMainContext().getBean("myListener");
}
return myListener;
}
}
Reference Here :,如果這並不
還有其他方法......讓我知道!
我以爲看上去很熟悉:) –
是的:參考:) – danielad