Здравствуйте, mi45, Вы писали:
M>Здравствуйте, BAKAB, Вы писали:
BAK>>Здравствуйте, unreger, Вы писали:
U>>>За неделю слегка поразбирался с контролами.
U>>>Но теперь не совсем понятно как совмещаются controller от grails и java-класс от gwt-ext для страницы.
BAK>>Тот же этот вопрос меня мучает.
BAK>>В своем проекте использую контроллер только для того, чтобы определить какое gwt приложение показывать.
BAK>>Передачу параметров в gwt-приложение осуществляю через json объекты или ajax (GWT-RPC)
M>Решение здесь: http://geekyryan.blogspot.com/2007/12/gwt-ext-and-grails-just-works.html
Спасибо за ссылку, хотя и тяжело читается.
Там используется RequestBuilder и RequestCallback из gwt,
НО, можно ведь сделать:
def listJSON = {
def testList = Test.list()
render(builder: 'json') {
totalCount(testList.size())
data { //data - название секции (произвольное) в json документе
for (t in testList) {
test(strField: t.strField, intField: t.intField)
}
}
}
}
public void onModuleLoad() {
//вывод таблицы с использованием json из контроллера
Panel panel = new Panel();
panel.setBorder(true);
panel.setPaddings(15);
panel.setWidth(700);
panel.setHeight(500);
panel.setBodyBorder(true);
HttpProxy dataProxy = new HttpProxy("/nb-gwt/test/listJSON");
RecordDef recordDef = new RecordDef(
new FieldDef[]{
new StringFieldDef("strField"),
new IntegerFieldDef("intField")
}
);
JsonReader reader = new JsonReader(recordDef);
reader.setRoot("data");
reader.setTotalProperty("totalCount");
final Store store = new Store(dataProxy, reader, true);
store.load();
ColumnModel columnModel = new ColumnModel(new ColumnConfig[]{
new ColumnConfig("Строка", "strField", 100, true),
new ColumnConfig("Число", "intField", 75, true)
});
GridPanel grid = new GridPanel();
grid.setStore(store);
grid.setColumnModel(columnModel);
grid.setWidth(375);
grid.setHeight(350);
grid.setTitle("Json Grid");
grid.setFrame(true);
grid.stripeRows(true);
grid.setIconCls("grid-icon");
panel.add(grid);
RootPanel.get().add(panel);
}
это работает, чуть позже проверю, работает ли submit и надо ли принимать в контроллере именно JSON
// из http://www.gwt-ext.com/demo/#loadSubmitXmlForm:
final Button submitBtn = new Button("Submit", new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
/*formPanel.getForm().submit("data/xml-errors.xml", null, Connection.GET,
"Saving Data...", false);*/
formPanel.getForm().submit("/nb-gwt/test/saveJSON"); //обращаемся к action saveJSON от TestController
}
});