Webflow позволяет выполнять определенные выражения через элемент <on-entry>
в потоке.
Однако можно ли как-то оценить выражение ДО того, как веб-поток попытается проверить страницу?
Webflow позволяет выполнять определенные выражения через элемент <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
...
}
}
Проблема с ответом klr8 заключается в том, что у вас нет никакой информации, кроме validationContext, переданной в валидатор. Если вам нужна другая информация из вашего потока, вы можете попробовать запустить проверку вручную:
<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. Я не уверен, как получить доступ к validationContext из Web Flow для ручного запуска, если ваши методы проверки принимают validationContext.