2015-05-13 163 views
1

我正在使用spring web流處理web應用程序。雖然我在flow.xml文件工作,我必須得決定狀態就可以了這樣的 -從flow.xml中打印日誌

<decision-state id="checkPermissin">  
    <if test="requestParameters.canApprove" then="approve" else="warning" /> 
</decision-state> 

當一個請求到達flow.xml然後從它那裏得到請求參數canApprove並測試它是否是真的還是假的。然後它進入approvewarning狀態。

我的問題是 - 我可以從flow.xml文件記錄/打印canApprove的狀態嗎?

回答

2

您可以在「決定狀態」的末尾添加一個退出標記,並在類路徑上調用任何服務方法,spring bean或靜態方法。

試試這個(未經測試):

<decision-state id="checkPermissin">  
    <if test="requestParameters.canApprove" then="approve" else="warning" /> 
    <on-exit> 
     <evaluate expression="T(org.apache.log4j.Logger).getLogger('someLogger').info(requestParameters.canApprove)"/> 
    </on-exit> 
</decision-state> 

上述解決方案更是一個黑客的滿足你的要求了。記錄這種情況的「正確」方法是擴展FlowExecutionListenerAdapter,並監聽當前的流程和決策狀態ID「checkPermissin」,然後記錄有關該流程的任何想要的內容,但會涉及flow.xml文件外的更多設置/編碼。 (請參閱:Catch "dead" session in Spring webflow:該示例用於捕獲異常,但可以輕鬆適用於記錄流中的任何內容)

+0

謝謝,我會試一試。 – Razib