Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC +jQuery / 22 сообщений из 22, страница 1 из 1
12.04.2011, 21:11
    #37212941
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Есть приложение использующее Spring MVC и jQuery, вопрос в том что при передачи AJAX запроса на сервер, в ответе русские буквы отображаются некорректно, не пойму где слетает кодировка, в общем, если кто сталкивался, подскажите пожалуйста как от этого избавиться?
JSP:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html  PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Education center</title>
<script type="text/javascript" src='<c:url value="/resources/jquery/jquery-1.4.4.min.js"/>'></script>
<script type="text/javascript">
    var jq = jQuery.noConflict();
        var i= 0 ;
        function next() {
            i=i+ 1 ;
             jq.post("news/get",
            { 	
                counter:i
            },
            function(data){
                jq("#content").html(data);
            },'html');
 
        }
       
        jq(document).ready(function(){
            jq('#next').click(function(){
                next();
            });
           });
    </script>  
</head>
<body>
<div id="content">
</div>
     <a id="next" href="#">Получить</a>
</body>
</html>
Контроллер:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
 import  java.util.Calendar;
 import  java.util.List;
 import  java.util.Locale;
 import  org.springframework.context.MessageSource;
 import  org.springframework.stereotype.Controller;
 import  org.springframework.validation.BindingResult;
 import  org.springframework.web.bind.annotation.ModelAttribute;
 import  org.springframework.web.bind.annotation.PathVariable;
 import  org.springframework.web.bind.annotation.RequestMapping;
 import  org.springframework.web.bind.annotation.RequestMethod;
 import  org.springframework.web.bind.annotation.ResponseBody;
 import  org.springframework.web.servlet.ModelAndView;
 import  org.springframework.ui.Model;
 import  org.springframework.web.bind.annotation.RequestParam;
@Controller
 public   class  NewsController {

    @RequestMapping(value = "/news/get", method = RequestMethod.POST)
     public  @ResponseBody
    String get(@RequestParam(value = "counter", required = true) Integer counter,
            Model model)  {
        String result = "<div id=\"next\">Русский текст</div>";

         return  result;
    }


}
...
Рейтинг: 0 / 0
12.04.2011, 21:16
    #37212950
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
а NewsController в какой кодировке?
...
Рейтинг: 0 / 0
12.04.2011, 21:20
    #37212955
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
grasoff.net,
Всё в UTF-8
...
Рейтинг: 0 / 0
12.04.2011, 22:02
    #37213011
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Динамический запрос всегда передается в utf-8, поэтому искать надо или до передачи серверу, или на сервере, или после получания ответа на клиенте.
...
Рейтинг: 0 / 0
12.04.2011, 22:06
    #37213018
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
IDVsbruck, поможете с поиском?)
Если серьёзно то перед тем как написать, проверял, вроде везде UTF-8.
...
Рейтинг: 0 / 0
12.04.2011, 22:12
    #37213029
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Кода маловато ... страница с кодом, конфигурацтонные файлы (контроллер вроде есть). Где-то пробел есть ...
...
Рейтинг: 0 / 0
12.04.2011, 22:15
    #37213032
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
IDVsbruck,
Какие конфигурационные файлы вас интересуют?
...
Рейтинг: 0 / 0
12.04.2011, 22:18
    #37213035
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
web.xml и спринговские
...
Рейтинг: 0 / 0
12.04.2011, 22:25
    #37213042
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
это не поможет?
И еще ... попробуй
Код: plaintext
 return  URLEncoder.encode(result, "UTF-8");
...
Рейтинг: 0 / 0
12.04.2011, 23:12
    #37213101
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
web.xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:config/main-context.xml
        </param-value>
    </context-param>

    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>
            classpath:log4j.properties
        </param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <filter>
		<filter-name>charsetFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF- 8 </param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>

    <filter-mapping>
		<filter-name>charsetFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

    <!-- MVC STARTS HERE -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:config/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup> 1 </load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
	<url-pattern>/</url-pattern>

    </servlet-mapping>
    <!-- MVC ENDS HERE -->

    <!-- /spring security -->
    <session-config>
        <session-timeout>
             30 
        </session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>/login.jsp</welcome-file>
    </welcome-file-list>
</web-app>
...
Рейтинг: 0 / 0
12.04.2011, 23:15
    #37213104
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
попробовал этот вариант:
Код: plaintext
 return  URLEncoder.encode(result, "UTF-8");
теперь весь ответ приходит примерно вот в таком виде:
%3Cdiv%3E11%2F4%2F2011%3Cbr%3E+%3Ch1%3Etest5%3C%2Fh1%3E
...
Рейтинг: 0 / 0
13.04.2011, 00:19
    #37213170
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Проблему решил, подключив Jackson, в самом приложении нужные данные теперь ходят через него, а принимающий jQuery заточил под его обработку, в любом случае, если у кого есть решение заявленной проблемы, буду рад услышать ответ
...
Рейтинг: 0 / 0
13.04.2011, 00:30
    #37213177
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
В "viewResolver" добавить contentType
Код: plaintext
<property name="contentType" value="text/html;charset=UTF-8"/>
...
Рейтинг: 0 / 0
13.04.2011, 00:39
    #37213187
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
ТимоН,
вот оно что...
а firebug'ом не смотрели что вам возвращает сервер?
...
Рейтинг: 0 / 0
13.04.2011, 01:54
    #37213229
Tima_D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
ТимоН,
проверил - не помогло
...
Рейтинг: 0 / 0
08.08.2011, 15:45
    #37385429
grief
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Ребята!

Похожая проблема:
фильтр подключен, файлы в utf-8 но все равно вопросики!
У кого получилось победить подскажите?
...
Рейтинг: 0 / 0
08.08.2011, 15:52
    #37385456
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
...
Рейтинг: 0 / 0
08.08.2011, 15:53
    #37385459
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Tomcat connector - 7838866
...
Рейтинг: 0 / 0
08.08.2011, 16:01
    #37385486
grief
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Пока сделал так:
index.jsp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Education center</title>
<script type="text/javascript" src='<c:url value="/resources/jquery/jquery-1.4.4.min.js"/>'></script>
<script type="text/javascript">
    var jq = jQuery.noConflict();
        var i= 0 ;
        function next() {
            i=i+ 1 ;
             jq.post("news/get",
            { 	
                counter:i
            },
            function(data){
                jq("#content").html(data);
            },'html');
 
        }
       
        jq(document).ready(function(){
            jq('#next').click(function(){
                next();
            });
           });
    </script>  
</head>
<body>
<div id="content">
</div>
     <a id="next" href="#">Получить</a>
</body>
</html>
content.jsp
Код: plaintext
1.
${content}
Controller.java
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
 import  java.util.Calendar;
 import  java.util.List;
 import  java.util.Locale;
 import  java.util.Map;
 import  org.springframework.context.MessageSource;
 import  org.springframework.stereotype.Controller;
 import  org.springframework.validation.BindingResult;
 import  org.springframework.web.bind.annotation.ModelAttribute;
 import  org.springframework.web.bind.annotation.PathVariable;
 import  org.springframework.web.bind.annotation.RequestMapping;
 import  org.springframework.web.bind.annotation.RequestMethod;
 import  org.springframework.web.bind.annotation.ResponseBody;
 import  org.springframework.web.servlet.ModelAndView;
 import  org.springframework.ui.Model;
 import  org.springframework.web.bind.annotation.RequestParam;
@Controller
 public   class  NewsController {

    @RequestMapping(value = "/news/get", method = RequestMethod.POST)
     public  String get(@RequestParam(value = "counter", required = true) Integer counter,
            Map<String, Object> map)  {

        Map.put("content","<div id=\"next\">Русский текст</div>");

         return  "content";
    }


}

Упрощено для понимания. Работает но что то не то явно.((((
...
Рейтинг: 0 / 0
09.08.2011, 06:12
    #37386257
grief
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
dmitriyche в server.xml уже прописано

<Connector URIEncoding="utf-8" useBodyEncodingForURI="utf-8" connectionTimeout="20000" port="8084" protocol="HTTP/1.1"
redirectPort="8443"/>

а вот json работает отлично, спасибо!
...
Рейтинг: 0 / 0
09.08.2011, 16:38
    #37387556
ZeD.ORA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Tima_D,

Код: plaintext
1.
request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
19.04.2014, 15:56
    #38619518
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring MVC +jQuery
Помогло это решение :

http://stackoverflow.com/questions/19524958/spring-mvc-response-to-ajax

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@RequestMapping(value = "/addData.html", method = RequestMethod.POST)
public ResponseEntity<String> addNewGroup(@ModelAttribute(value = "group") GroupStudent group, ...

    if(group.getGroupStudentNumber() != null) {
         HttpHeaders headers = new HttpHeaders();
         headers.add("Content-Type", "text/html; charset=utf-8");
         ResponseEntity<String> entity = new ResponseEntity<String>("Группа " + group.getGroupStudentNumber() + " добавлена", headers, HttpStatus.OK);
         return entity;
    } else
        return null;
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC +jQuery / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]