четверг, 30 августа 2012 г.

Решение проблемы с кодировкой в Spring компонентах c использованием @RequestMapping

Добавляем Spring Intercepter для явного указания кодировки в запросе HttpServletRequest:
package ru.myapp.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class ServiceCharacterEncodingInterceptor extends HandlerInterceptorAdapter {

    private String characterEncoding = "UTF-8";

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        request.setCharacterEncoding(characterEncoding);
        return super.preHandle(request, response, handler);
    }

    public void setCharacterEncoding(String characterEncoding) {
        this.characterEncoding = characterEncoding;
    }
}
Прописываем в конфигурации Spring:
    <mvc:interceptors>
        <bean class="ru.myapp.service.ServiceCharacterEncodingInterceptor"/>
    </mvc:interceptors>

Взято отсюда

Комментариев нет:

Отправить комментарий