2013-11-18 2 views
0

Я пытаюсь реализовать пользовательский компонент xbl, чтобы отправить форму внешней службе, выполнить проверку и обработать результаты проверки. Версия orbeon - 4.4-CE, развернутая на JBoss 7.1.1.Final с уровнем устойчивости MySQL.Пользовательский компонент XBL для отправки формы

<xbl:binding element="fr|custom-submit" id="fr-custom-submit" xxbl:mode="lhha binding value"> 
    <xbl:implementation> 
     <xf:model id="custom-submit-model"> 
      <xf:instance id="validation-res"> 
       <dummy/> 
      </xf:instance> 

      <!-- External validation submission --> 
      <xf:submission id="form-submission" ref="instance('fr-form-instance')" 
       action="http://localhost:8080/webapp/services/task/submitData" method="post" 
       replace="instance" instance="validation-res"> 
       <xf:delete ev:event="xforms-submit" ref="//@v:*"/> 
       <xf:action ev:event="xforms-submit-done"> 
        <!-- Insert external validation results when done --> 
        <xf:insert ref="." origin="instance('validation-res')/v:data/*"/> 

        <!-- Handle the valid/invalid result --> 
       </xf:action> 
      </xf:submission> 

     </xf:model> 
    </xbl:implementation> 
    <xbl:template> 
     <fr:button ref="xxf:binding('fr-custom-submit')"> 
      <xf:label> 
       <xh:img src="/apps/fr/style/images/silk/disk.png"/> 
       <xh:span>Custom save</xh:span> 
      </xf:label> 
      <xf:send ev:event="DOMActivate" submission="form-submission"/> 
     </fr:button> 

    </xbl:template> 
</xbl:binding> 

При подаче формы следующее исключение происходит в лог-файлах:

Empty single-node binding on xf:submission for submission id: form-submission           | 

Я не могу понять, что означает исключение и если причиной проблемы является сильным инкапсуляция, как описано here ,

Возможно ли вообще написать пользовательский компонент xbl для отправки формы? Как я могу преодолеть вышеупомянутую проблему?

С уважением

ответ

0

Это действительно проблема, связанная с герметизацией и использование xxf:instance() позволяет разорвать инкапсуляцию. Таким образом, в вашем случае представление будет делать:

ref="xxf:instance('fr-form-instance')" 
Смежные вопросы