Vladiator
Vladiator

Reputation: 426

JSF form encoding

How to make JSF use UTF-8 everywhere? It converts UTF-8 to Win-1252 in form data. Data gets from a bean, I don't use any filters and DB doesn't relate to this problem. JSF 2.2.4, Glassfish 4.0.0.

Before sending:

After (абвг became абвг):

Form data in Chrome:

In JSF debug tool:

Form code:

<h:form>
    <h:panelGrid columns="2">
        <h:panelGroup>#{m.nickname}</h:panelGroup>
    <h:panelGroup>
        <h:inputText value="#{register.nickname}" />
    </h:panelGroup>

    <h:panelGroup>#{m.password}</h:panelGroup>
    <h:panelGroup><h:inputSecret value="#{register.password}" /></h:panelGroup>

    <h:panelGroup>#{m.shortName}</h:panelGroup>
    <h:panelGroup><h:inputText value="#{register.shortName}" /></h:panelGroup>

    <h:panelGroup>#{m.email}</h:panelGroup>
    <h:panelGroup><h:inputText value="#{register.email}" /></h:panelGroup>

    <h:panelGroup />
    <h:panelGroup><h:commandButton action="#{register.register}" value="Регистрация" /></h:panelGroup>
    </h:panelGrid>
</h:form>

Upvotes: 0

Views: 710

Answers (1)

Vladiator
Vladiator

Reputation: 426

Create glassfish-web.xml file with following content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
    <parameter-encoding default-charset="UTF-8" />
</glassfish-web-app>

Upvotes: 1

Related Questions