verter
|
|
1 | |
проблема с русскими буквами при использовании метода navigate()09.06.2011, 12:12. Показов 2204. Ответов 14
Метки нет Все метки)
(
Файл jsp строит html-документ, в котором имеется форма, на которой есть текстовое поле и селект. На onChange() селекта повешан обработчик в виде js-функции, в которой кое-что делается и по завершении опять вызывается этот же jsp-файл, т.е. html-страница перегружается, поэтому приходится посылать параметром значение текстового поля. В функции делается перезагрузка так:
navigate('имя_файла.jsp?текстовой_параметр='+значение_текстового_параметра); Страница перегружается, но в текстовом поле вместо русских букв появляются вопросики. такую вещь прописываю: <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> и всё равно не помагает. Подскажите как правильно сделать? |
|
09.06.2011, 12:12 | |
Ответы с готовыми решениями:
14
Проблема с русскими буквами при отправке формы. Проблема при использовании сокетов с русскими буквами. Проблема с русскими символами при использовании объекта MSXML2.XMLHTTP Проблема с кодировкой при выводе содержимого из файла 1.js (то что написано русскими буквами) на страницу браузера |
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,907
|
|
09.06.2011, 12:30 | 2 |
Попробуй сделать на странице такую форму
<form name='reload' action='имя_файла.jsp' method='get'> <input type='hidden' name='текстовой_параметр' value=''> </form> Вместо navigate(...) пишем var f = document.forms['reload']; f.elements['текстовой_параметр'].value = значение_текстового_параметра; f.submit();
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
09.06.2011, 12:33 | 3 |
А причем тут JS?
![]() ![]()
0
|
verter
|
|
09.06.2011, 12:40 | 4 |
Для vers: Я согласен, не по теме немного, просто проблемка у меня в использовании navigate(), а это javascript, поэтому я здесь решил спросить.
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
09.06.2011, 12:50 | 5 |
Ну попробуй вариант bazile. Он самый пральный. Еще может попробовать
функцию escape() navigate('имя_файла.jsp?текстовой_параметр='+escape(значение_текстового_параметр а)); Но она какая та крывая ...
0
|
verter
|
|
09.06.2011, 12:51 | 6 |
для bazile: Спасибо за помощь! Может и получится так, но это на самом деле не решение проблемы, а её обход, а хочется понять почему же русские буквы не отображаются? К тому же на submit формы у меня срабатывает action, который грузит на клиента с помощью другого jsp-файла другую страничку.
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,907
|
|
09.06.2011, 12:59 | 7 |
verter, предложенный мною способ как раз и призван выяснить где проблема возникает - браузер неправильно русский текст передает или jsp неправильно его получает.
Можно еще попробовать перед вызовом navigate(...); добавить alert(значение_текстового_параметра) и посмотреть что он выдает. > К тому же на submit формы у меня срабатывает action, который > грузит на клиента с помощью другого jsp-файла другую страничку. Не понял что ты имеешь в виду.
0
|
verter
|
|
09.06.2011, 13:15 | 8 |
<form name='Form' action='form_action.jsp' method='post'>
когда в js-функции делаю Form.submit(), то срабатывает её action а в 'form_action.jsp' делается следующее: if (request.getMethod().compareToIgnoreCase('post') != 0) { response.sendRedirect(request.getHeader('Referer')); return; } response.sendRedirect('другая.jsp'); |
verter
|
|
09.06.2011, 13:20 | 9 |
для bazile: да, забыл сказать, что alert(), поставленный перед вызовом navigate() возвращает нормальные русские буквы, т.е. в jsp как-то неправильно кодировка задаётся.
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,907
|
|
09.06.2011, 13:20 | 10 |
По моему ты что-то мудришь. Я предлагаю сделать _еще одну_ форму со своим action. Сервер не в состоянии отличить результат работы
---------- navigate('имя_файла.jsp?текстовой_параметр='+значение_текстового_параметра); ---------- и ---------- <form name='reload' action='имя_файла.jsp' method='get'> <input type='hidden' name='текстовой_параметр' value=''> </form> ... var f = document.forms['reload']; f.elements['текстовой_параметр'].value = значение_текстового_параметра; f.submit(); ---------- для него это один и тот же get запрос.
0
|
verter
|
|
09.06.2011, 13:32 | 11 |
для bazile: извини, но я не могу с тобой согласиться, потому что я сейчас ещё раз проверил: navigate() и form.submit() воспринимаются сервером по-разному, а именно: если используешь navigate(тот_же_самый.jsp), то action формы не срабатывает, а если делаешь form.submit(), то срабатывает.
|
verter
|
|
09.06.2011, 13:34 | 12 |
для bazile: может это потому так, что я использую метод 'post', а не 'get'?
|
verter
|
|
09.06.2011, 13:34 | 13 |
для bazile: может это потому так, что я использую метод 'post', а не 'get'?
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,907
|
|
09.06.2011, 13:34 | 14 |
> может это потому так, что я использую метод 'post', а не 'get'?
Да
0
|
verter
|
|
09.06.2011, 14:16 | 15 |
решил проблемку: нужно было правильно настроить web-server: я использую Tomcat 5.5.7 В его конфигах, а именно в Tomcatcfgserver.xml нужно для порта 8080, который я использую прописать дополнительно следующий параметр: useBodyEncodingForURI='true'
|
09.06.2011, 14:16 | |
Помогаю со студенческими работами здесь
15
Проблема с русскими буквами Проблема с русскими буквами в БД Access Проблема с кодировками (с русскими буквами) в консольном приложении. Проблема с русскими буквами, когда работаю с ResourceBundle.getBundle()! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |