he (для «HTML-сущностей») - это надежный кодировщик / декодер объектов HTML, написанный на JavaScript. Он поддерживает все стандартизованные именованные символьные ссылки в соответствии с HTML , обрабатывает неоднозначные амперсанды и другие случаи ребер точно так же, как браузер , имеет обширный набор тестов , и - вопреки многим другим решениям JavaScript - он отлично справляется с астральными символами Unicode. Доступна онлайн-демонстрация.
эрк. Правильный ответ - обратный вызов ajax. Вы можете либо вручную закодировать 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() );
}
}
В этом примере показано, как добавить код обратного вызова к любому компоненту в Wicket. После того, как событие OnDomReady сработает в вашем браузере, при загрузке страницы Wicket вызовет js enging для обратного вызова в ваш код, используя Ajax, методу ответа, показанному выше, после чего вы можете выполнить код Java на сервер и, возможно, добавить компоненты к цели ajax для повторной визуализации.
Чтобы сделать это вручную, из js, вы можете подключиться к системе калитки, распечатав getCallbackScript (). toString () в атрибуте компонента калитки , к которому вы затем сможете получить доступ из js. Вызов этого URL-адреса из js вручную с помощью wicketAjaxGet из 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
DWR, позволяет JavaScript в браузере взаимодействовать с Java на сервере и помогает Вам управлять веб-страницами с результатами.
, Поскольку Dorward упомянул, что это сделано через AJAX
Принятие Вас означает JavaScript, работающий на клиенте - Вы заставляете перенаправление HTTP быть сделанным к серверу и имеете Ваш сервлет, реагируют на запрос на данный URL.
Это известно как Ajax, и существует номер библиотеки , которые помогают Вам сделать это..
Выдержка из https://cwiki.apache.org/WICKET/calling-wicket-from-javascript.html
Если вы добавите на свою страницу какой-либо класс, расширяющий AbstractDefaultAjaxBehavior , wicket-ajax.js будет добавлен в заголовок вашей веб-страницы. wicket-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");