Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с кодировкой STRUTS, Как изменить кодировку сабмита формы??? 
V
    Опции темы
Amaz0nka
Дата 16.1.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Как можно изменить кодировку сабмита формы в стратсе?
При нажатии кнопки сабмит в форме стратса не сохраняются русские буквы, вместо них ?????? (форма добавления изменения читателя)
На англ всё работает хорошо, при чём если в форму отправляешь русские данные (например изменить существующего читателя) то вставляется всё туда хорошо, русские буквы отображаются, однако при нажатии submit сохраняет одни вопросики...
Что можно сделать чтобы submit отсылал responce в нужной кодировке
вот код самой формы:
Код

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@include file="taglib.jsp" %>

<html:html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=CP1251">
        <title>Add Reader</title>
    </head>
    <body>
    <H4>Readers -->> Add reader</H4>
    &nbsp
    &nbsp
    <html:form action="readers.do?method=save">
        <table border="0"  align="center" width="40%">
         <tr>
             <td width="40%">
                 <b>SURNAME:</b>
             </td>
             <td>
                 <html:text property="readers.surName" />
                </td>                    
            </tr>
            <tr>
             <td width="30%">
                 <b>NAME:</b>
             </td>
             <td>
                 <html:text property="readers.name"/>
                </td>                    
            </tr>
            <tr>
             <td width="30%">
                 <b>MIDDLE NAME:</b>
             </td>
             <td>
                 <html:text property="readers.middleName"/>
                </td>                    
            </tr>
            <tr>
             <td width="30%">
                 <b>DATE OF BIRTH:</b>
             </td>
             <td>
                 <html:text property="readers.dateOfBirthDisplay" />
                </td>                    
            </tr>
                    
        </table>
        &nbsp
        &nbsp
        <table border="0" align="center" width="20%">
            <tr>
                <td ><html:submit value="  SAVE  "></html:submit></td>
            </tr>
        </table>
        </html:form>
    </body>
</html:html>

PM MAIL ICQ   Вверх
v2v
Дата 17.1.2008, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



мало данных.
попробуй поискать ответ тут


--------------------
PM   Вверх
Samotnik
Дата 17.1.2008, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Amaz0nka,  если проблема с кодировкой,  используйте   POST    запрос!   

PM MAIL   Вверх
Amaz0nka
Дата 17.1.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



v2v, у меня ссылка не работает :(

Samotnik, я его и использую...

Проблема в том что при вводе в поля формы русских символов выкидывает ексепшен... если вводить англ символы, то всё в порядке.
Но когда я ввожу туда русские символы, их передаёт как ??????????? или что-то в этом духе... а дальше когда кидаю эти данные в базу, поннятно почему, вываливается эксепшен 
Код


16.01.2008 23:56:36 org.apache.struts.action.RequestProcessor processException
WARNING: Unhandled Exception thrown: class java.sql.SQLException
16.01.2008 23:56:36 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet action threw exception
java.sql.SQLException: Incorrect string value: '\xC3\x90\xC2\xBD\xC3\x91...' for column 'surname' at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1541)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1455)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1440)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
    at epam.project.manager.ReadersManager.add(ReadersManager.java:75)
    at epam.project.action.ReadersAction.save(ReadersAction.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)




Это сообщение отредактировал(а) Amaz0nka - 17.1.2008, 01:13
PM MAIL ICQ   Вверх
v2v
Дата 17.1.2008, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



ты данные из формы в какую то базу пишешь?
попробуй тогда эту ссылку: http://jiploo.com/blog/struts-utf-8-and-form-submissions/

Добавлено через 2 минуты и 57 секунд
в первой данной ссылке обсуждался такой же вопрос, и было предложено 2 решения:
1. использовать фильтры -> http://jiploo.com/blog/struts-utf-8-and-form-submissions/ 
2. 
Цитата

Просто перегрузил класс ActionServlet. Тогда всё заработало. Незнаю как в версии 1.2.7 у Struts но параметр контролера contentType выставляется только у Response.

Код

public class ActionServlet extends org.apache.struts.action.ActionServlet {
    public void doGet(javax.servlet.http.HttpServletRequest request,
            javax.servlet.http.HttpServletResponse response)
     throws java.io.IOException,
            javax.servlet.ServletException {
        request.setCharacterEncoding("UTF-8");
        super.doGet(request, response);
    }
    public void doPost(javax.servlet.http.HttpServletRequest request,
            javax.servlet.http.HttpServletResponse response)
     throws java.io.IOException,
            javax.servlet.ServletException {
        request.setCharacterEncoding("UTF-8");        
        super.doPost(request, response);
    }
}



--------------------
PM   Вверх
Samotnik
Дата 17.1.2008, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Amaz0nka,  В данный момент занимаюсь тем же самым,  завтра буду на офисе, выложу, то что у меня  получается! 
PM MAIL   Вверх
Amaz0nka
Дата 17.1.2008, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Завтра будет поздно, мне сегодня нужно ((((( завтра уже сдавать ((((

v2v, тут база не причём, я в классе экшена (перед тем как отправляю в базу) вывожу на консоль то что в форме ввела и уже там отображается ????
PM MAIL ICQ   Вверх
v2v
Дата 17.1.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



прочитала, попробовала то что я выше написал?


--------------------
PM   Вверх
Amaz0nka
Дата 17.1.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Уррраааааааа!!!!!!!!! Спасибо ребята, очень выручили!!!! помогло вот это http://ianpurton.com/struts-utf-8-and-form-submissions/

ещё раз ОГРОМНОЕ спасибо!!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.