0

Unable to update variable defined in spring web flow

asked 2009-02-15 14:31:56 +0800

lendle gravatar image lendle
213 3

Hello, the "save-when" feature of data binding appears weird if the variable is from spring web flow.
The zul page is defined as the following:

<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?>
<?variable-resolver class="org.zkoss.spring.DelegatingVariableResolver"?>

<zk:zk     xmlns="http://www.zkoss.org/2005/zk/native"
    xmlns:zul="http://www.zkoss.org/2005/zul"
    xmlns:zk="http://www.zkoss.org/2005/zk">
    <zul:window title="Enter Query Param" border="normal" width="800px">
        <zul:label value="Enter Query Param"/><br/>
        <zul:label value="no_bank:"></zul:label><zul:textbox width="20" id="no_bank" value="@{queryParam1.no_bank, save-when='self.onChange'}"/><br/>
        <zul:label value="name_bank:"></zul:label><zul:textbox width="20" id="name_bank" value="@{queryParam1.name_bank, save-when='self.onChange'}"/><br/>
        <zul:button href="@{flowBean1.eventURLMap.mainWindow}" label="Restart"/><zul:button href="@{flowBean1.eventURLMap.showQueryParam}" label="ShowQueryParam"/>
    </zul:window>
</zk:zk>

the variable 'queryParam1' is defined in a web flow configuration file

<flow xmlns="http://www.springframework.org/schema/webflow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/webflow
    http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">

    <var name="flowBean1" class="test.flow.FlowBean1"/>
    <var name="queryParam1" class="test.flow.test1.QueryParam1"/>

    <view-state id="mainWindow" view="/test1/firstPage">
        <on-render>
            <evaluate expression="flowBean1.setEventURLMap(flowExecutionUrl, 'enterQueryParam', 'secondPage', 'showQueryResult')"/>
        </on-render>

        <transition on="enterQueryParam" to="enterQueryParam">
        </transition>

        <transition on="secondPage" to="secondPage">
            <evaluate expression="flowBean1.setValue('value2')"/>
        </transition>

        <transition on="showQueryResult" to="showQueryResult">
            <evaluate expression="flowBean1.executeQuery()"/>
        </transition>
    </view-state>

    <view-state id="enterQueryParam" view="/test1/enterQueryParam">
        <on-render>
            <evaluate expression="flowBean1.setEventURLMap(flowExecutionUrl, 'mainWindow', 'showQueryParam')"/>
        </on-render>
        <transition on="mainWindow" to="mainWindow">
            <evaluate expression="flowBean1.setValue('value1')"/>
        </transition>
        <transition on="showQueryParam" to="showQueryParam">
        </transition>
    </view-state>

    <view-state id="showQueryParam" view="/test1/showQueryParam">
        <on-render>
            <evaluate expression="flowBean1.setEventURLMap(flowExecutionUrl, 'mainWindow', 'showQueryResult')"/>
        </on-render>
        <transition on="mainWindow" to="mainWindow">
            <evaluate expression="flowBean1.setValue('value1')"/>
        </transition>
        <transition on="showQueryResult" to="showQueryResult">
            <evaluate expression="flowBean1.executeQuery()"/>
        </transition>
    </view-state>

    <view-state id="showQueryResult" view="/test1/showQueryResult">
        <on-render>
            <evaluate expression="flowBean1.setEventURLMap(flowExecutionUrl, 'restart', 'finish')"/>
        </on-render>
        <transition on="restart" to="firstPage">
            <evaluate expression="flowBean1.setValue('value1')"/>
        </transition>
        <transition on="finish" to="finish"/>
    </view-state>

    <view-state id="secondPage" view="/test1/secondPage">
        <on-render>
            <evaluate expression="flowBean1.setEventURLMap(flowExecutionUrl, 'restart', 'finish')"/>
        </on-render>
        <transition on="restart" to="firstPage">
            <evaluate expression="flowBean1.setValue('value1')"/>
        </transition>
        <transition on="finish" to="finish"/>
    </view-state>

    <end-state id="finish" />

</flow>

However, it seems like that although value="@{queryParam1.no_bank, save-when='self.onChange'}" is defined,
queryParam1 is never updated when onChange event occurs.
Is there anything wrong in my configuration?

looking forward to any suggestion, thanks!

delete flag offensive retag edit

3 Replies

Sort by ยป oldest newest

answered 2009-02-16 08:52:45 +0800

lendle gravatar image lendle
213 3

Sorry, but is there any suggestions?
thanks!

link publish delete flag offensive edit

answered 2009-02-18 02:33:57 +0800

windperson gravatar image windperson
415 1

Hi lendle,
It seems to be a bug, could you report a bug report here:
http://sourceforge.net/tracker/?group_id=152762&atid=785191
many thanks!

link publish delete flag offensive edit

answered 2009-02-18 14:24:12 +0800

lendle gravatar image lendle
213 3

Hello, sure,
I've made a report as 2612811
thanks for your effort :)

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2009-02-15 14:31:56 +0800

Seen: 294 times

Last updated: Feb 18 '09

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More