An advantage with the current dialog.data bean is that it allows a the use of a common view when the underlying data objects are different. How would this be done with dialog managed beans?

As an example the AbstractPayment class has a CreditCard and a Check implementation. Both the "Pay By Check" and "Pay by CreditCard" share a common view that collects the billing address information. In the current implementation, that view uses #{dialog.data.billingZipCode} to pass the billing zip code regardless of the actual class. With dialog managed beans their will be a check and creditCard bean so how would the billing zip code be referenced in the common view? So unless their is a way to alias the beans in the dialog configuration, the billing address view can not be shared.

Dialog configuration show the common view getBillingAddress.

<dialog name="Pay By CreditCard" start="getBillingAddress">
   <view name="getBillingAddress" viewId="/getBillingAddress.jsp">
     <transition outcome="next" target="getCreditCardNumber"/>
   </view>
   <view name="getCreditCardNumber viewId="/getCreditCardNumber.jsp">
     <transition outcome="next" target="processPayment"/>
   </view>
   <action name="processPayment" method="#{creditCard.processPayment}">
     <transition outcome="success" target="paymentAccepted"/>
     <transition outcome="rejected" target="paymentRejected"/>
   </action>
   <end name="paymentAccepted" view="/paymentAccepted.jsp"/>
   <end name="paymentRejected" view="/paymentRejected.jsp"/>
</dialog>
<dialog name="Pay By Check" start="getBillingAddress">
   <view name="getBillingAddress" viewId="/getBillingAddress.jsp">
     <transition outcome="next" target="getAccountNumber"/>
   </view>
   <view name="getAccountNumber viewId="/getCheckingAccountNumber.jsp">
     <transition outcome="next" target="processPayment"/>
   </view>
   <action name="processPayment" method="#{check.processPayment}">
     <transition outcome="success" target="paymentAccepted"/>
     <transition outcome="rejected" target="paymentRejected"/>
   </action>
   <end name="paymentAccepted" view="/paymentAccepted.jsp"/>
   <end name="paymentRejected" view="/paymentRejected.jsp"/>
</dialog>


Paul Spencer

Reply via email to