3

私はブラジル出身ですが、ここにはたくさんのà é ô ó ç言葉がありますが、それは私のJSFプロジェクトの問題です。

私はmaster.xhtmlすべてのページのテンプレートとしてを持っています、そしてここにそれがあります:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
        <meta http-equiv="pragma" content="no-cache"/>
        <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/assets/css/bootstrap.css" type="text/css" media="all" />
        <title>#{masterController.projectName}</title>
        <style type="text/css">
            body {
                padding-top: 60px;
                padding-bottom: 40px;
            }
            .sidebar-nav {
                padding: 9px 0;
            }
        </style>
    </h:head>
    <h:body>
        <ui:fragment rendered="#{loginController.isLoggedIn}">
            <ui:include src="../includes/top.xhtml"/>
        </ui:fragment>
        <ui:insert name="body" />
        <hr />
        <ui:fragment rendered="#{loginController.isLoggedIn}">
            <ui:include src="../includes/footer.xhtml" />
        </ui:fragment>
    </h:body>
    <script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/assets/js/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/assets/js/bootstrap.min.js"></script>
</html>

ご覧のとおり、私のxmlencondigは私のContent-Typeメタタグとして正しいです。

Eclipseを使用していて、プロジェクトの[プロパティ]->[リソース]でISO-8859-1Text file encodingに変更しました。

login.xhtmlページ内にmaster.xhtmlUsuário(ユーザー)というラベルがあります。この文字を使用しáていて、それがないと単語が間違っていると、次のエラーが発生します。

exception

javax.servlet.ServletException: null source
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)

root cause

java.lang.IllegalArgumentException: null source
    java.util.EventObject.<init>(Unknown Source)
    javax.faces.event.SystemEvent.<init>(SystemEvent.java:67)
    javax.faces.event.ComponentSystemEvent.<init>(ComponentSystemEvent.java:69)
    javax.faces.event.PostRestoreStateEvent.<init>(PostRestoreStateEvent.java:69)
    com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:256)
    com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:245)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)

取り除けáばうまくいきますが、私が言ったように、ポルトガル語ではそれが必要であり、アクセントのある他の多くの文字を使用するつもりです。

4

1 に答える 1

4

古いISO-8859-1文字セットではなく、新しいUTF-8文字セットを使用する必要があります。JSFは、デフォルトでUTF-8をすでに使用しています。これは、世界の支配に備えてはるかに優れています。

すべてをUTF-8に変更し、IDE設定を変更してどこでもUTF-8を使用できるようにします。Eclipseでは、最も重要な設定は[ウィンドウ]>[設定]>[一般]>[ワークスペース]>[テキストファイルエンコーディング]です。

ここに画像の説明を入力してください

次に、左上の入力フィールドのタイプフィルターテキストに「encoding」と入力し、他のすべての設定にも変更をUTF-8に再適用します。

参照:

于 2012-04-27T15:29:02.063 に答える