Javascript метод, который получает значение от сервлета не работает - PullRequest
0 голосов
/ 17 октября 2011

У меня есть метод JavaScript, который в теле документа onload() должен показывать предупреждение.

У него есть один строковый параметр, который предоставляет сервлет. Метод получает значение, но ничего не делает, поэтому я не знаю, неверна ли моя логика или есть ли ограничения на выполнение этого в HTML.

Код для моего скрипта:

function Check1(temp) {
    if (temp.toString().length > 5) {
        jAlert('success', 'This is the success dialog.', 'Success Dialog');
    }         
} 

HTML-код:

<body onload="Check1(<c:out value="${CFP}"/>)">
    <div id="main">

Код сервлета:

Fmsg = "Fornecedor " + ID + " - " + nome + " foi criado";         
request.setAttribute("CFP",Fmsg);
userPath = "/Fornecedor";  

Так что любой совет очень ценится.

Ответы [ 2 ]

0 голосов
/ 17 октября 2011

Если под «HTML» вы в буквальном смысле подразумеваете файл .html, то да, это ограничение.

Вы пытались поместить JSP (в частности, тег <c:out />) в обычный файл .html,что не работает, если вы не настроили свой контейнер сервлетов для обработки файлов .html как JSP (что, честно говоря, я даже не уверен, что это возможно).

0 голосов
/ 17 октября 2011

Внутри функции вы ожидаете, что temp будет строковым значением.Представьте, что ${CFP} возвращает строковое значение Fornecedor 1 - somenome foi criado, тогда

<body onload="Check1(<c:out value="${CFP}"/>)">

будет сгенерировано следующим образом

<body onload="Check1(Fornecedor 1 - somenome foi criado)">

(чтобы увидеть это самостоятельно, откройте страницув браузере щелкните правой кнопкой мыши и просмотрите исходный код)

Это недопустимый синтаксис JavaScript.Вы действительно хотите передать литеральную строку в качестве аргумента функции.В этом случае ваша функция должна в конечном итоге выглядеть следующим образом:

<body onload="Check1('Fornecedor 1 - somenome foi criado')">

Теперь давайте перенесем это обратно в код JSP, который отвечает за генерацию этого кода HTML / JS:

<body onload="Check1('<c:out value="${CFP}"/>')">
...