我想在src/groovy類中的函數A()內的會話中設置一個值,並在同一個src/groovy類的函數B()中使用該值。那可能嗎?由於它們被覆蓋,所以我無法傳遞函數之間的值。我引用了這個link,但並不完全理解實現。提前致謝。 編輯:這裏函數A是crawler4j的訪問函數,函數B是handlePageStatusCode()在src/groovy中使用會話
回答
我做了一個小的實用Java類來處理像src/groovy,src/java或grails-app/services這樣的地方訪問會話。你可以嘗試使用它:
public class SessionUtil {
/**
* Returns the current session. This can be used in classes where the session variable is not set by Grails, such as Services.
* @return the session
*/
public static GrailsHttpSession getSession() {
return WebUtils.retrieveGrailsWebRequest().getSession();
}
}
要使用它,無論你需要的會話你可以這樣寫:「我不能在函數間傳遞的價值,因爲他們被覆蓋」
def session = SessionUtil.getSession()
只要我使用這段代碼,我的履帶停止工作。 :( –
什麼錯誤,你得到什麼?任何異常?堆棧跟蹤? – grantmcconnaughey
沒有什麼。它只是阻止我的履帶式機器運作。每當我嘗試在我的src/groovyBasicCrawler類中使用會話,我的履帶不起作用。但是你的方法很好,謝謝 –
這很難理解你在這裏試圖實現什麼。在HTTP請求期間,會話只對連接的用戶有意義。如果您使用的是例如src/groovy類一個控制器,您可以將該會話作爲該方法的參數傳遞給您的方法。否則,你會如何使用它?
你引用的鏈接是要走的路 - 靜態方法RequestContextHolder.getRequestAttributes()
會給你屬於當前執行的請求GrailsWebRequest
實例,或者null
如果你調用它未運行的線程控制器行動。一旦你有GrailsWebRequest
你可以從那裏訪問會話,請求,響應,參數和閃光燈(通過getFlashScope()
)。
謝謝。你可以分享一些例子嗎? –
@ayushi有沒有什麼可說的更多 - 'def session = RequestContextHolder.requestAttributes?.session' –
- 1. 在類中使用會話
- 2. 在c#中使用會話#
- 3. 在Django中使用會話
- 4. 在PHP中使用會話
- 5. 在wcf中使用會話
- 6. 在asp.net中使用會話
- 7. 在用戶控件中使用會話
- 8. 使用會話管理插件在wordpress中維護會話
- 9. 在Perl中使用Expect獲取產生會話的會話ID
- 10. 在PHP登錄腳本中使用會話和會話變量
- 11. 使用會話
- 12. 會話使用MVC中
- 13. 在會話中使用購物車類
- 14. 如何在jQuery中使用php會話?
- 15. 在PHP中使用cookie和會話類
- 16. tls在android中使用會話票據
- 17. 如何在PHP中使用會話?
- 18. 在JSP中使用與Struts2的會話
- 19. 如何在Django中使用會話
- 20. 在動態texbox中使用會話
- 21. 在perl中使用PHP會話變量
- 22. 在ASP.NET中使用會話對象
- 23. 在CMS中適當使用PHP會話?
- 24. 在我的項目中使用會話
- 25. 在iOS中使用SLRequest的Facebook會話
- 26. 在fancybox中使用會話變量
- 27. 在css中使用會話變量
- 28. 在Meteor JS中使用會話問題?
- 29. 如何在Java Servlet中使用會話?
- 30. 在Laravel 5中使用php會話
。那沒有意義。你能澄清嗎? –
我的意思是我不能改變函數原型。它們覆蓋了crawler4j的函數,因此我無法將這些值作爲函數參數傳遞。 –
在使用方法之前,您不能只創建一個類屬性並指定它嗎? –