Bu, PrimeFaces 3.0'dan beri bilinen bir sorundur. Mevcut HTTP isteğinin bir ajax isteği olup olmadığını nasıl kontrol ettiğiyle ilgili bir değişiklik nedeniyle oluşur. Bir istek başlığı yerine bir istek parametresi ile tanımlanmıştır. JSF görünümü geri yüklenmeden önce ilk kez bir istek parametresi alındığında, tüm istek parametreleri, JSF'nin UTF-8 kodlayan kendi varsayılan karakteri yerine genellikle ISO-8859-1 olan sunucunun varsayılan karakter kodlaması kullanılarak ayrıştırılır. Derinlemesine bir açıklama için bkz. Unicode input retrieved via PrimeFaces input components become corrupted.
Çözümlerden biri, request.setCharacterEncoding("UTF-8")
numaralı bir filtre oluşturmaktır.
@WebFilter("*.xhtml")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
// ...
}
Gönderme sırasında bir dosya yüklüyor musunuz? Çek dilinde uygulamalar geliştiriyorum ve bu bana IceFaces dosya yükleme bileşeniyle oldu. Ama normal durumlarda her şey yolundaydı. Fin charset'i ayarlamak için Filter'i kullanabilirsiniz ama hala garip bir hata var –