у меня есть форма в JSP. Я должен заполнить его на основе объекта запроса (из сервлета). Как я могу использовать Java Script для доступа к атрибутам объекта запроса или если вы можете предложить мне другой лучший способ динамического заполнения формы?

Вы должны понимать, что Java / JSP является просто производителем кода HTML / CSS / JS. Поэтому все, что вам нужно сделать, это просто дайте JSP напечатать переменную Java, как если бы она была переменной JavaScript, и что сгенерированный вывод кода HTML / JS синтаксически действителен.

, вот несколько примеров того, как ее распечатать: ${foo} Представьте, что переменная Java имеет значение

<script>var foo = '${foo}';</script>
<script>someFunction('${foo}');</script>
<div onclick="someFunction('${foo}')">...</div>

, тогда JSP в конечном итоге сгенерирует этот HTML, который вы можете проверить, нажав правую кнопку мыши, "bar" в the webbrowser: Просмотр исходного кода Учтите, что эти одинарные кавычки являются обязательными для представления строковой переменной в JS. Если вместо этого вы использовали

<script>var foo = 'bar';</script>
<script>someFunction('bar');</script>
<div onclick="someFunction('bar')">...</div>

, то он вывел бы var foo = ${foo};, что может привести к ошибкам «bar is undefined», когда вы попытаетесь получить к нему доступ ниже в коде JS (вы можете увидеть ошибки JS в консоли JS набор инструментов веб-разработчика браузера, который можно открыть, нажав F12 в Chrome / FireFox23 / IE9). Также обратите внимание, что если переменная представляет число или логическое значение, которое не нужно заключать в кавычки, то оно будет работать нормально. var foo = bar; Если переменная произошла от ввода, управляемого пользователем, имейте в виду, что необходимо учитывать

экранирование JS — пользовательский агент не получил никаких данных изображения. и . В нижней части вы можете найти пример того, как создать пользовательскую функцию EL, которая экранирует переменную Java для безопасного использования в JS. Я создаю небольшое приложение чата для друзей, но не знаю, как своевременно получать информацию, которая не так ручна или элементарна, как принудительное обновление страницы. & { ****} xA ; & # xA ; В настоящее время я Если переменная немного сложнее, например, Java-бин, или его список, или карта, тогда вы можете использовать одну из многих доступных

библиотек JSON . Обратите внимание, что таким образом вам больше не нужно печатать его как строку в кавычках. для преобразования объекта Java в строку JSON. Вот пример, предполагающий Gson.

String someObjectAsJson = new Gson().toJson(someObject);

Если вы предварительно заполняете поля формы на основе параметров в HTTP-запросе, то почему бы просто не сделать это на стороне сервера в вашем JSP … а не на стороне клиента с помощью JavaScript? В JSP это будет выглядеть примерно так:

<script>var foo = ${someObjectAsJson};</script>

См. Также:

На стороне клиента JavaScript не имеет понятия «объект запроса». Вы в значительной степени должны проанализировать строку запроса самостоятельно, чтобы получить параметры CGI. Я подозреваю, что это не то, что вы на самом деле хотите сделать.

<input type="text" name="myFormField1" value="<%= request.getParameter("value1"); %>"/>

На странице JSP:

Получить доступ к этому значению на странице Javascipt можно с помощью:

<c:set var="list_size" value="${list1.size() }"></c:set>

Я добавил страницу javascript в свой проект извне.

var list_size = parseInt($('#list_size').val());

Существует ли универсальная функция JavaScript, которая проверяет, что переменная имеет значение, и гарантирует, что она не является неопределенной или нулевой? У меня есть этот код, но я не уверен, охватывает ли он все случаи: & # xA ; & # xA {*** } function