2010-11-09 8 views
6

में सत्यापन से पहले विधियों का मूल्यांकन करना वेबफ्लो आपको प्रवाह में <on-entry> तत्व के माध्यम से विशेष अभिव्यक्ति निष्पादित करने की अनुमति देता है।स्प्रिंग वेबफ्लो

हालांकि पृष्ठ को मान्य करने के लिए वेबफ्लो प्रयासों से पहले किसी भी तरह अभिव्यक्ति का मूल्यांकन करना संभव है?

<view-state id="enterBookingDetails" model="booking"> 
    <transition on="proceed" to="reviewBooking"> 
</view-state> 

public class Booking { 
    private Date checkinDate; 
    private Date checkoutDate; 
    ... 

    public void validateEnterBookingDetails(ValidationContext context) { 
     // do whatever you want to do before attemting validation 
     ... 

     // now do validation 
     ... 
    } 
} 

उत्तर

3

एक चाल आप इस्तेमाल कर सकते हैं आवश्यक तर्क, कुछ इस (संदर्भ गाइड से नमूना) की तरह अपने सत्यापन विधि की शुरुआत में जोड़ने के लिए है सत्यापन के अलावा कोई जानकारी नहीं है कॉन्टेक्स्ट वैधता में पारित किया गया है। आप अपने प्रवाह से अन्य जानकारी की जरूरत है, तो आप मैन्युअल मान्यता को गति प्रदान करने की कोशिश कर सकते:

<transition on="submit" to="isValid" validate="false"> 
    <evaluate expression="someLogicIWantToDo(a,b,c)" /> 
    <evaluate expression="booking.validate(bookingForm, messageContext)"/> 
</transition> 

<decision-state id="isValid"> 
    <if test="messageContext.hasErrorMessages()" then="home" else="page2"/> 
</decision-state> 

वेब-प्रवाह को मान्य तरीकों या तो एक MessageContext या ValidationContext ले सकते हैं। मुझे यकीन नहीं है कि वेब फ़्लो से प्रमाणीकरण कॉन्टेक्स्ट को मैन्युअल रूप से ट्रिगर करने के लिए कैसे करें यदि आप सत्यापन विधियां सत्यापन लेते हैं।

+1

वेब प्रवाह द्वारा लॉक की गई वैध विधि का विधि हस्ताक्षर नहीं है? क्या होगा यदि आपको पास होने वाले अन्य डेटा की आवश्यकता है? –

+0

इस दृष्टिकोण में डिजाइन अच्छा मिश्रण सत्यापन और व्यावसायिक प्रसंस्करण नहीं होगा – abhi

1

klr8 के जवाब के साथ समस्या यह है कि तुम क्या है:

संबंधित मुद्दे