Нужно реализовать такую логику:
html-форма отправляет ajax запрос (json="true") на сервер. Сервер на основе запроса создает некий список, оборачивает его в JSON-объект и возвращает его на клиент. На основе данного объекта строится html-таблица.
Вопрос: Как это можно реализовать?
На данный момент используется примерно такая конструкция:
<form jwcid="@Form" success="listener:doSubmit" async="true" json="true">
....
<b jwcid ="subResult@Result"></b>
</form>
Submit: обновляет комноненты
public void doSubmit() {
responseBuilder.updateComponent("subResult");
responseBuilder.updateComponent("tableArea");
}
Оборачивание в json и вызов скрипта(?)
public abstract class Result extends AbstractFormWidget implements
ValidatableField, IJSONRender, IDirect {
public void renderComponent(IJSONWriter writer, IRequestCycle cycle) {
JSONObject json = writer.object();
json.put("asda", "dva");
Map parms = new HashMap();
parms.put("props", json.toString());
parms.put("form", getForm().getName());
parms.put("widget", this);
PageRenderSupport prs = TapestryUtils.getPageRenderSupport(cycle, this);
IScript script = getScript();
script.execute(this, cycle, prs, parms);
}
Остался невыясненным вопрос:
Как и куда вернуть данный JSON-объект?
env: Tapestry 4.1.2-SNAPSHOT