Orbeon,xforms提交页面加载事件

时间:2013-11-20 10:10:56

标签: xml orbeon xforms

我有关于页面加载事件的提交和xforms提交的问题: 有一个输入xform

<xforms:instance id="mypagedata.input">
    <SOAP-ENV:Envelope>
        <SOAP-ENV:Header>
            <myheader />
        </SOAP-ENV:Header>
        <SOAP-ENV:Body>
            <mybody>give me content</mybody>
        </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
</xforms:instance>

服务器有一个输出xform

<xforms:instance id="mypagedata.output">
    <SOAP-ENV:Envelope />
</xforms:instance>

还有一个使用输入和输出xml的subission函数

<xforms:submission
    id="mypagedata.submission"
    action="http://localhost/orbeon/xml/mypagedata"
    mediatype="action=;application/soap+xml; charset=UTF-8"
    encoding="UTF-8"
    ref="instance('mypagedata.input')"
    method="post"
    replace="instance"
    instance="mypagedata.output">
    <xforms:send submission="mypagedata.submission" />
    <xforms:toggle case="case_busy" events:event="xforms-submit" />
    <xforms:toggle case="case_error" events:event="xforms-submit-error" />
    <xforms:toggle case="case_mypagedata" events:event="xforms-submit-done" />
</xforms:submission>
</xforms:model>

我的开关标签

<xforms:switch>
    <xforms:case id="mypagedata.default">
        <xforms:trigger>
            <xforms:label>Mydata</xforms:label>
            <xforms:action events:event="DOMActivate">
                <xforms:setvalue ref="instance('mypagedata.input')//myheader" value="'this is a my header...'" />
                <xforms:send submission="mypagedata.submission" />
            </xforms:action>
        </xforms:trigger>
    </xforms:case>  
    <xforms:case id="case_busy">Loading</xforms:case>
    <xforms:case id="case_error">Error</xforms:case>
    <xforms:case id="mypagedata.output">
        </xforms:group ref="instance('mypagedata.output')">
            ... therre output-xml data
        </xforms:group>
    </xforms:case>  
</xforms:switch>

问题是如何使用两行(设置值和提交)

<xforms:setvalue ref="instance('mypagedata.input')//myheader" value="'this is a my header...'" />
<xforms:send submission="mypagedata.submission" />

它不需要按下Mydata按钮,它会在页面加载时自动使用两行吗? 谢谢

1 个答案:

答案 0 :(得分:1)

在XForms初始化时可以使用两个事件:

  • xforms-model-construct-done:在模型准备就绪时调用,但UI可能不是
  • xforms-ready:当所有模型都准备好并且UI已准备就绪时

对您提交的回复需要访问用户界面,因此您需要xforms-ready。在<xforms:model>元素中尝试以下内容:

<xforms:action ev:event="xforms-ready">
    <xforms:setvalue ref="instance('mypagedata.input')//myheader" value="'this is a my header...'" />
    <xforms:send submission="mypagedata.submission" />
</xforms:action>