Tôi có trạng thái tác vụ đánh giá biểu thức và sau đó chuyển tiếp sang các trạng thái khác tùy thuộc vào kết quả. Một trong các trạng thái kết quả là một trạng thái luồng phụ kiểm soát một luồng khác, ví dụ;Spring Webflow: làm cách nào để chuyển thuộc tính từ luồng này sang luồng khác trong quá trình chuyển đổi?
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail" />
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>
Như bạn thấy tôi có thể vượt qua một đầu vào cho subflow qua thẻ đầu vào nhưng câu hỏi của tôi là làm thế nào tôi có thể xác định và vượt qua đầu vào bổ sung mà tôi muốn có mặt khi và chỉ khi subflow nhà nước đang được gọi là từ quá trình chuyển đổi WORKFAIL? Giả sử trạng thái dòng phụ "fixFail" có thể được gọi từ các trạng thái hành động khác.
Tôi đã thử những thứ tương tự như sau không có hiệu lực;
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail">
<attribute name="newInput" value="3000" type="java.lang.Integer" />
</transition>
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<input name="someNumber2" value="flowScope.newInput" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>
Hmmm các conversationScope âm thanh như những gì tôi muốn trong trường hợp này tôi nghĩ. Tôi đồng ý phiên là những gì tôi muốn khi người dùng lặp lại các luồng này khi họ hoàn thành lần đầu tiên và bất kỳ thuộc tính phiên nào sẽ vẫn không phải là họ? Trường hợp các thuộc tính phạm vi cuộc hội thoại sẽ biến mất khi luồng chính kết thúc và sẽ không có mặt nếu người dùng đã nhập luồng chính lần thứ hai, đúng không? Có cách nào để thêm vào cuộc hội thoạiScope trong quá trình chuyển đổi trên = "WORKFAIL" không? Tôi muốn giữ nó trong xml/jsps thay vì thêm vào mã Java của hành động. –
@Nick Foote - hãy xem bản chỉnh sửa của tôi để trả lời câu hỏi của bạn –
Chúc vui vẻ khi bạn thấy nó, tôi đã thử tất cả những thứ như $ {converationScope.someVariable} trong jsp !! –