Вызов сервлета из window.showModalDialog (...) - PullRequest
0 голосов
/ 22 февраля 2012

Я вызываю другой контекст приложения из window.showModalDialog, но путаю со следующей работой.Тот же код для передачи параметра в showModalDialg.

var myArguments = new Object();
myArguments.param1 = "Hello World :)";
window.showModalDialog("java2sTarget.html", myArguments, ''); 

, и я могу прочитать эти myArguments (параметры) в сгенерированном HTML, используя следующий код:

<script>
  document.write(window.dialogArguments.param1);//Hello World :)
</script>

Я не могу использовать строку запроса &Я отправляю myArguments (параметр), потому что я хочу скрыть параметр от пользователя приложения.

Теперь я вызываю сервлет из showModalDialog (..)

onclick="window.showModelDialog('http://localhost:7778/app/servlet/test',myArguments,'');" 

onclick = "window.showModelDialog ('http://localhost:7778/app/servlet/test',myArguments,'');"

Но, согласно моим знаниям

Servlet  --> Servlet container --> HTML+JS+CSS

поэтому JS будет доступен на последнем этапе, но я хочу использовать на первом этапе (сервлет).

Теперь мне нужно принять какое-то решение в коде сервлета на основе myArguments (параметр).

есть ли способ прочитать эти myArguments (параметры) в коде сервлета?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Основной целью является скрытие строки запроса от пользователя, чтобы избежать неправильного использования этих параметров. Я попытался после работы вокруг.

Разработчики отправляют скрытые параметры, чтобы получить источник относительной информации (например, DataBase). И мы также знаем, что можем отправлять скрытую информацию в Window.showModalDialog, используя dialogArguments

Работа вокруг:

(i) Я получил относительную информацию с сервера за один шаг до вызова Window.showModalDialog с использованием jQuery.getJSON()

(ii) я использовал google-gson API на стороне сервлета для преобразования JavaBeans в строки Json. Решение 1 Решение 2

(iii) Преобразовать JSON в объект javascript, используя jQuery.parseJSON

var args = jQuery.parseJSON(json);
window.showModalDialog("pages/"+args.pageName, args, ''); 

я использовал args.pageName, чтобы сделать вещи динамичными

Пожалуйста, предложите улучшения в этом обходном пути. Спасибо

0 голосов
/ 22 февраля 2012

Передайте его как параметр запроса в строке запроса.

var queryString = "param1=" + encodeURIComponent("Hello World :)");
onclick="window.showModelDialog('http://localhost:7778/app/servlet/test?' + queryString, myArguments, '');" 

Нет, другой альтернативы нет.URL запроса в любом случае не отображается в модальном диалоговом окне.

...