我正在使用spring webflow,但我需要訪問我的HttpSession中的一個方法,該方法使用transition ==> evaluate expression來訪問。 (所以在包含我的流程的xml文件中) 到目前爲止,我還沒有找到一種方法將它傳遞給我的方法。我看了一下flowrequestcontext,但到目前爲止我還沒有找到方法。Spring webflow - 如何在評估表達式中傳遞會話?
3
A
回答
7
我想你不需要通過它,只要你通過RequestContext。你可以試試這個:
public class MyAction extends MultiAction{
public Event myMethod(RequestContext context){
HttpSession session = ((HttpServletRequest)context.getExternalContext().getNativeRequest()).getSession();
...
}
}
3
我有一個非常類似的需要訪問HttpSession
在流動。以下是我做的:
首先來看看externalContext
特殊EL變量:
它給你的其中之一:
org.springframework.webflow.context.ExternalContext
的ExternalContext
接口提供了一種稱爲getNativeRequest()
的方法,該方法應返回HttpRequest
對象。 (在weblflow 2.0.x版本至少)
所以,這意味着你應該能夠使用類似這門手藝的表達式:
<evaluate expression="externalContext.nativeRequest.session" result="flowScope.information"/>
一個簡單的測試,你可以使用這樣的表達式:
expression="externalContext.nativeRequest.session.id"
將您的會話ID傳遞給方法。
當然你也可以使用類似的EL通過列席會議,方法等
4
插入的對象(例如,從flowScope)到會話這個工作對我來說:
<evaluate expression="externalContext.sessionMap.put('attributeName', flowScope.myObject)"/>
1
這爲我工作:
<set name="flowRequestContext.externalContext.sessionMap.myId" value="myObject.getId()" />
在客戶端:
Long id = (Long) request.getSession().getAttribute("myId");
希望它有幫助!
相關問題
- 1. Spring WebFlow不會觸發評估表達式狀態轉換
- 2. 遞歸表達式評估?
- 3. 如何評估表達式?
- 4. 如何在Spring表達式語言中運行嵌套評估
- 5. 如何在AngularJS中評估表達式中的表達式
- 6. 如何評估ExpressionVisitor中的表達式?
- 7. 如何評估樹中的表達式?
- 8. Java遞歸數學表達式評估
- 9. 如何將參數傳遞給spring webflow?
- 10. 如何評估另一個表達式中的angularjs表達式
- 11. 如何評估MathML表達式?
- 12. 如何評估Handlebars表達式?
- 13. Angular如何評估表達式?
- 14. Python如何評估這個表達式?
- 15. 如何評估這些C表達式?
- 16. Python - 如何評估以下表達式?
- 17. 如何評估以下Javascript表達式?
- 18. Angular:評估傳遞到組件屬性的表達式
- 19. 編程評估與Spring表達式語言豆表達
- 20. 評估在楓樹中的表達式
- 21. 在JSP中未評估EL表達式
- 22. 在javascript中的表達式評估
- 23. 後綴表達式評估
- 24. JasperReports表達式評估
- 25. Xtext評估表達式
- 26. 內聯表達式評估
- 27. Groovy表達式評估
- 28. 無法評估表達式
- 29. 表達式評估序列
- 30. 評估數組表達式