2013-02-04 20 views
0

我是春季整合新手。我在網上看到了下面的例子。春季表達來獲取文件大小?

<int:router input-channel="inChannel" expression="payload.paymentType"> 
    <int:mapping value="CASH" channel="cashPaymentChannel"/> 
    <int:mapping value="CREDIT" channel="authorizePaymentChannel"/> 
    <int:mapping value="DEBIT" channel="authorizePaymentChannel"/> 
</int:router> 

類似於上述的邏輯,我的要求是,如果有效載荷lenggh是零,那麼它應該映射到一個信道,並且如果有效載荷大小是多於一個,那麼它應該被引導到不同的信道。我如何使用SpEL實現它?

謝謝!

+0

你的有效負載是'String'嗎? – ach

+0

有效載荷是消息 user1016403

+0

那麼你想測試文件大小? – ach

回答

0

如果您正在處理Message<File>,則在表達式中使用​​將指的是File。您可以訪問表達式中的任何File的方法。下面將路線outputChannelB如果文件不存在,或者是零長度,或outputChannelA否則:

<int:router input-channel="inputChannel" expression="payload?.length() > 0 ? 'outputChannelA' : 'outputChannelB'" /> 

的使用注意事項「安全導航」操作?.對空安全。