2
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets" >
    <head>
    </head>

    <h:form>
        <h:body>
            <h:inputText value="#{editorBean.value2}" />
            <h:commandButton action="content.xhtml" value="Submit" />
        </h:body>
    </h:form>
</html>
  • 値 2 は、セッション スコープの ManageBean の文字列です。
  • JSF Mojarra 2.1.19 を使用
  • グラスフィッシュ 3.1.2

フォームを入力äüöして送信するとäöü、標準出力のように表示されます。

しかし、ajax を使用すると、これは起こりません。

これはどのように発生し、どうすれば解決できますか?

4

1 に答える 1

2

JSF/Facelets は、プロセス全体ですでにデフォルトで UTF-8 を使用しています。

要求パラメーターが UTF-8 を使用してエンコードされていることを Glassfish に伝えるだけで、UTF-8 を使用して適切にデコードされます。ファイルを開き、/WEB-INF/glassfish-web.xml次のエントリを に追加します<glassfish-web-app>

<parameter-encoding default-charset="UTF-8" />

ちなみに、外ではなく<h:form>入る必要があります。また、 JSF に適切な Ajax スクリプトを自動インクルードさせるために、代わりにを使用する必要があります。<h:body><h:head><head>

于 2012-06-06T13:41:32.697 に答える