Об этом нужно позаботиться автоматически.
Но если вы пытаетесь немедленно отобразить изменения модели на экране, обязательно добавьте атрибуты incremental="true"
к элементам ввода xforms, чтобы каждое нажатие клавиши генерировало события обновления, а также выводились элементы вывода xforms. *
добавлен:
Вы, похоже, отправляете на html. Я предполагаю, что это HTML, содержащий саму форму. Вам не нужно называть это так, чтобы обновить модель. Обычно вы вызываете скрипт с отправкой PUT, чтобы сохранить его на сервере. PUT обычно тоже ничего не возвращает, хотя может вернуть копию того, что вы делали.
Я взял ваш код и сделал два важных изменения, чтобы показать, что модель обновляется автоматически. Я скопировал вашу таблицу входов формы и переименовал входы в выходы. Я также добавил инкрементный атрибут на входах, чтобы обновлять выходы после каждого нажатия клавиши. Вы также можете заметить, что я добавил немного CSS, но это просто для того, чтобы сделать метку и значение выходных данных различимыми:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:form="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xml:lang="en">
<head>
<link rel="stylesheet" type="text/css" href="test.css" />
<script type="text/javascript" src="formfaces.js"></script>
<style type="text/css">
label {
display: block;
float: left;
clear: both;
text-align: right;
padding-right: 1em;
width : 110px;
}
</style>
<form:model>
<form:instance>
<data xmlns="">
<textbox1>0</textbox1>
<textbox2>1</textbox2>
<textbox3>2</textbox3>
<textbox4>3</textbox4>
</data>
</form:instance>
<form:submission action="test.xml" id="submission" method="put" replace="instance"/>
</form:model>
</head>
<body>
<table>
<tr>
<td>
<form:input ref="/data/textbox1" incremental="true">
<form:label>TextBox1</form:label>
</form:input>
</td><td>
<form:input ref="/data/textbox2" incremental="true">
<form:label>TextBox2</form:label>
</form:input>
</td></tr>
<tr><td><form:input ref="/data/textbox3" incremental="true">
<form:label>TextBox3</form:label>
</form:input>
</td><td><form:input ref="textbox4" incremental="true">
<form:label>TextBox4</form:label>
</form:input>
</td></tr>
</table>
<table>
<tr>
<td>
<form:output ref="/data/textbox1">
<form:label>TextBox1</form:label>
</form:output>
</td><td>
<form:output ref="/data/textbox2">
<form:label>TextBox2</form:label>
</form:output>
</td></tr>
<tr><td><form:output ref="/data/textbox3">
<form:label>TextBox3</form:label>
</form:output>
</td><td><form:output ref="textbox4">
<form:label>TextBox4</form:label>
</form:output>
</td></tr>
</table>
<form:submit submission="submission"><form:label>Submit</form:label></form:submit>
</body>
</html>
Если вы замените значение атрибута действия отправки ссылкой на какой-либо сценарий .asp, он будет вызван и получит весь экземпляр в теле запроса. Обязательно верните полный экземпляр, так как он будет заменен.
НТН!