Отправить (отправить) форму в сервлет Java с помощью Orbeon XForms

Я пытаюсь выполнить простейшую задачу, а именно отправить форму в сервлет Java с помощью XForms (orbeon).

<xforms:submission id="login-submit" ref="instance('login-instance')" resource="/Login/login.do" method="urlencoded-post" mediatype="application/xml" replace="all">

Когда я нажимаю кнопку «Отправить», я получаю:

Type    class java.lang.NullPointerException
Message null
Location    oxf:/ops/xforms/xforms-server-submit.xpl
Line    73
Column  51
Stack Trace 

java.lang.NullPointerException
..

Наряду с большой трассировкой стека. Я знаю, что сервлет работает, так как при использовании стандартной HTML-формы я регистрируюсь на сайте. Я потратил много времени на это, пытаясь заставить его работать и в убытке. Я использую Orbeon v3.9.1 PE и ознакомительную лицензию, Tomcat 7.0.32 и v1.7.0_07 JRE.


person Moo    schedule 19.10.2012    source источник


Ответы (1)


Я вижу, что некоторые параметры отсутствуют. См. приведенный ниже пример, который вы можете понять и соответственно использовать значения параметров.

<xforms:submission id="submission-id" ref="instance('form-instance')"
        action="http://localhost:8080/mywebapp/servlets/servlet/TestServlet" 
        method="post" replace="none"
        validate="false">
    <xforms:message ev:event="xforms-submit-done" level="modal" value="'Submission Successful'"/>
    <xforms:message ev:event="xforms-submit-error" level="modal" value="'Submission failed'"/>
</xforms:submission>

Сначала проверьте URL-адрес, указанный в действии, чтобы увидеть, правильно ли настроен сервлет.

Вы можете протестировать свою функциональность отправки, и она предоставляется здесь. Вы можете добавить события xforms-submit-done и xforms-submit-error, чтобы проверить, какое событие вызывается.

person Jayy    schedule 19.10.2012
comment
Я добавил недостающие атрибуты, и все хорошо. так что большое спасибо. Теперь мне нужно решить, как отправить содержимое формы в виде простого текста (стандартная HTML-форма), так как я предполагаю, что по умолчанию отправляется XML-фрагмент | документ. Я пробовал serialization=text/plain, но у меня это не работает. - person Moo; 19.10.2012
comment
Ладно, теперь я еще больше запутался. Даже отправив форму в ее родной форме, как мне получить к ней доступ из моего сервлета? Если я попытаюсь вывести список параметров запроса, я ничего не получу, но я знаю, что код вызывается! - person Moo; 19.10.2012
comment
@ user1759390: Вы должны вызвать входной поток запроса в сервлете и можете сохранить содержимое потока в строке или записать его в файл. - person Jayy; 20.10.2012