Установить параметр запроса в Orbeon

Я новичок в Orbeon и XForms.

Я создал форму с полем ввода "BaseId"

<xf:input id="control-3-control" bind="control-3-bind">
    <xf:label ref="$form-resources/control-3/label"/>
    <xf:hint ref="$form-resources/control-3/hint"/>
    <xf:help ref="$form-resources/control-3/help"/>
    <xf:alert ref="$fr-resources/detail/labels/alert"/>
</xf:input>

и я хочу, когда я достигну этой формы, в методе crud.xpl
PUT я не могу получить значение BaseId через

<sql:param type="xs:string" select="/request/baseid"/>

Помогите мне, пожалуйста
Извините за мой плохой английский


person Long Hai    schedule 22.04.2013    source источник


Ответы (1)


Значение элементов управления передается REST API слоя сохраняемости в XML-документе в виде тела HTTP-запроса. Итак, в crud.xpl (например, тот, что для eXist), это будет документ под /request/body. Точный путь зависит от вашего раздела и имени элемента управления. Например, если раздел называется address, а поле city, значение будет ниже /request/body/form/address/city.

person avernet    schedule 23.04.2013
comment
я изменил свою форму так же, как и ваше руководство, название моего раздела — раздел, а мое поле — baseid. Как ваше руководство, в crud.xpl (постоянство mysql) я получу значение baseid через ‹sql:param type=xs:string select=/request/body/form/section/baseid/›. Но я не могу его получить здесь значение равно null, поэтому, пожалуйста, помогите мне. - person Long Hai; 24.04.2013
comment
@LongHai Трудно точно сказать, что идет не так, не запустив код. Я думаю, вам просто нужно отладить это. Например, попробуйте зарегистрировать документ request, чтобы точно увидеть, что он содержит. Вы можете сделать это, добавив атрибут debug="my request" в файл <p:output name="data" id="request"/>. (Строка my request просто присутствует, поэтому у вас есть что-то, что вы можете искать в orbeon.log; вы можете установить для нее все, что вам удобно для поиска.) - person avernet; 24.04.2013
comment
спасибо, вы спасли меня: D, но xpart - это /request/document/form/address/city, а не /request/body/form/address/city (я понимаю это, когда отлаживаю, следуя вашему руководству, спасибо) - person Long Hai; 25.04.2013
comment
еще один вопрос, я создал новое поле ввода в настройке диалоговой формы. Как я могу получить его значение в crud.xpl, когда я сохранил эту форму. - person Long Hai; 25.04.2013
comment
@LongHai Ах, да document не body; моя вина! Что вы подразумеваете под созданием нового поля ввода в настройке диалоговой формы? Вы изменили диалоговое окно Form Builder, в котором вы задали имя приложения/формы? Где хранится это значение? Вы храните в форме метаданные? - person avernet; 25.04.2013
comment
см. мой вопрос по этой ссылке Вопрос - person Long Hai; 26.04.2013
comment
@LongHai Я ответил на этот вопрос и заранее извиняюсь, если это не тот ответ, который вы искали! - person avernet; 29.04.2013