Как я называю код Java от кода JavaScript в Калитке?

Надежный кодировщик / декодер объектов HTML, написанный на JavaScript.

https://mths.be/he

he (для «HTML-сущностей») - это надежный кодировщик / декодер объектов HTML, написанный на JavaScript. Он поддерживает все стандартизованные именованные символьные ссылки в соответствии с HTML , обрабатывает неоднозначные амперсанды и другие случаи ребер точно так же, как браузер , имеет обширный набор тестов , и - вопреки многим другим решениям JavaScript - он отлично справляется с астральными символами Unicode. Доступна онлайн-демонстрация.

15
задан Adam Bellaire 8 October 2008 в 19:55
поделиться

4 ответа

эрк. Правильный ответ - обратный вызов 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

14
ответ дан 1 December 2019 в 03:25
поделиться

http://www.wicket-library.com/wicket-examples-6.0.x/index.html/ имеет много примеров для получения Вас движение.

Или имеют взгляда на DWR

http://directwebremoting.org/

DWR, позволяет JavaScript в браузере взаимодействовать с Java на сервере и помогает Вам управлять веб-страницами с результатами.

, Поскольку Dorward упомянул, что это сделано через AJAX

3
ответ дан 1 December 2019 в 03:25
поделиться

Принятие Вас означает JavaScript, работающий на клиенте - Вы заставляете перенаправление HTTP быть сделанным к серверу и имеете Ваш сервлет, реагируют на запрос на данный URL.

Это известно как Ajax, и существует номер библиотеки , которые помогают Вам сделать это..

0
ответ дан 1 December 2019 в 03:25
поделиться

Выдержка из 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");
5
ответ дан 1 December 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: