Если я могу это сделать, как мне вызвать код Java (методы для примера) из кода JavaScript в Wicket.Как вызвать код Java из кода JavaScript в Wicket?
ответ
Эрк. Правильным ответом будет ajax call backs. Вы можете вручную закодировать js, чтобы подключиться к калитке js, или вы можете настроить обратные вызовы из компонентов калитки в java. Например, из AjaxLazyLoadPanel:
component.add(new AbstractDefaultAjaxBehavior() {
@Override
protected void respond(AjaxRequestTarget target) {
// your code here
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.renderOnDomReadyJavascript(getCallbackScript().toString());
}
}
В этом примере показано, как добавить перезвонит код любого компонента в калиткой. После того, как событие OnDomReady запускается в вашем браузере, при загрузке страницы, Wicket заставит js enging перезвонить в ваш код с помощью Ajax на метод «reply», показанный выше, после чего вы можете выполнить Java-код на сервера и, возможно, добавить компоненты в цель ajax, которую нужно повторно отобразить.
Чтобы сделать это вручную, от js, вы можете подключиться к системе калитки, распечатав getCallbackScript(). ToString() для атрибута компонента калитки, который затем вы сможете получить из js. Вызов этого URL из js вручную с помощью wicket калиткиAjaxGet из wicket-ajax.js.
Проверьте список рассылки для Лота разговора на эту тему: http://www.nabble.com/Wicket-and-javascript-ts24336438.html#a24336438
http://www.wicket-library.com/wicket-examples-6.0.x/index.html/ есть много примеров, чтобы вы собираетесь.
Или есть Посмотрите на ДВР
DWR позволяет Javascript в браузере взаимодействовать с Java на сервере и позволяет управлять веб-страницы с результатами.
Как Dorward упомянуто это делается с помощью AJAX
Сломанная ссылка http://wicketstuff.org/wicket13/ajax/ – Gorky 2014-05-09 00:03:00
Отрывок из https://cwiki.apache.org/WICKET/calling-wicket-from-javascript.html
Если добавить любой класс, который расширяет AbstractDefaultAjaxBehavior на вашу страницу, будут добавлены калитка-ajax.js к заголовку вашей веб-страницы. калитка ajax.js дает два основных методов вызвать ваш компонент:
function wicketAjaxGet(url, successHandler, failureHandler, precondition, channel)
и
function wicketAjaxPost(url, body, successHandler, failureHandler, precondition, channel)
Вот пример:
JavaScript
function callWicket() {
var wcall = wicketAjaxGet('$url$' + '$args$', function() { }, function() { });
}
$url$
является полученного по методу abstractDefaultAjaxBehavior.getCallbackUrl()
. Если вы введете строку, возвращенную с этого метода, в ваш браузер, вы вызовете метод ответа, то же самое применимо для javascript-метода.
Можно добавить аргументы, добавив их в строку URL. Они принимают форму &foo=bar
.
вы получите дополнительные аргументы в методе ответа Java, как это:
Map map = ((WebRequestCycle) RequestCycle.get()).getRequest().getParameterMap();
или это:
String paramFoo = RequestCycle.get().getRequest().getParameter("foo");
Стоит упомянуть, что API для извлечения параметров изменился в Wicket 1.5. Вызов `RequestCycle.get(). GetRequest()` для получения объекта `Request`, вы должны теперь вызывать` getQueryParameters() `(для параметров GET),` getPostParameters() `(для параметров POST) или` getRequestParameters() `(для всех сразу). Каждый возвращает экземпляр «IRequestParameters», который вы можете запросить для параметров. См. [Документы API] (http://wicket.apache.org/apidocs/1.5/). – cooperised 2012-03-13 19:56:07
последний ссылка не работает – 2011-02-12 18:21:21