Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 jsf2 facelets:在模板中声明utf-8还不够吗?_Jsf 2_Encoding_Utf 8_Facelets - Fatal编程技术网

Jsf 2 jsf2 facelets:在模板中声明utf-8还不够吗?

Jsf 2 jsf2 facelets:在模板中声明utf-8还不够吗?,jsf-2,encoding,utf-8,facelets,Jsf 2,Encoding,Utf 8,Facelets,HI 我有一个问题,如果我将模板定义为UTF-8页面,那么该行为不应该应用于调用它的所有包含吗 我创建了一个简单的模板,它打印“añu是一个gnu(这个有效)”,这意味着它可以理解并正确处理“ñ”字符。但是,当我包含另一个页面(chupacabra)时,如果我试图打印包含相同“ñ”字符的单词,我会得到一个com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:无效字节 simple_template.xh

HI

我有一个问题,如果我将模板定义为UTF-8页面,那么该行为不应该应用于调用它的所有包含吗

我创建了一个简单的模板,它打印“añu是一个gnu(这个有效)”,这意味着它可以理解并正确处理“ñ”字符。但是,当我包含另一个页面(chupacabra)时,如果我试图打印包含相同“ñ”字符的单词,我会得到一个com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:无效字节

simple_template.xhtml

<?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:f="http://java.sun.com/jsf/core"      
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >

    <h:head> 

    </h:head>
    <h:body style="background-color:black;" >
        a ñu is a gnu  (this one works)
        <ui:insert name="contenido"/>
    </h:body>
</html>
<ui:composition 
   template="/paginas/comun/simple_template.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:dabit="http://java.sun.com/jsf/composite/components"> 
            <ui:define name="contenido">
<h:form>
    añoo (this one wont work)

    </h:form>
    </ui:define>
    </ui:composition>

añu是gnu(这个有效)
chupacabra.xhtml

<?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:f="http://java.sun.com/jsf/core"      
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >

    <h:head> 

    </h:head>
    <h:body style="background-color:black;" >
        a ñu is a gnu  (this one works)
        <ui:insert name="contenido"/>
    </h:body>
</html>
<ui:composition 
   template="/paginas/comun/simple_template.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:dabit="http://java.sun.com/jsf/composite/components"> 
            <ui:define name="contenido">
<h:form>
    añoo (this one wont work)

    </h:form>
    </ui:define>
    </ui:composition>

añoo(这个不行)

您的Facelets文件使用错误的字符编码保存。您需要使用UTF-8保存它们。在Eclipse中,您可以通过窗口>首选项>常规>工作区>文本文件编码设置:

修复后,编辑并重新保存所有模板。即使只有一个包含文件或主模板使用错误的编码保存,那么整个过程仍然会失败


请注意,XML序言
是不必要的。它只告诉XML解析器(读:Facelets的SAX编译器)保存的XML文件的版本和编码。但它已经默认为UTF-8。你可以安全地摆脱它们。这对MSIE浏览器也更友好。

您的Facelets文件使用错误的字符编码保存。您需要使用UTF-8保存它们。在Eclipse中,您可以通过窗口>首选项>常规>工作区>文本文件编码设置:

修复后,编辑并重新保存所有模板。即使只有一个包含文件或主模板使用错误的编码保存,那么整个过程仍然会失败


请注意,XML序言
是不必要的。它只告诉XML解析器(读:Facelets的SAX编译器)保存的XML文件的版本和编码。但它已经默认为UTF-8。你可以安全地摆脱它们。这对MSIE浏览器也更友好。

可能是编辑器的编码错误。如果您使用的是eclipse open file properties,请参阅chupacabra.xhtmlw的编码,您使用哪个编辑器来编辑/保存Facelets文件?月食?@partlov谢谢partlov。右键单击chupacabra.xhtml,属性,资源,将文本文件编码设置为utf-8,关闭eclipse,运行eclipse-clean,仍然得到相同的异常。如果它比编辑器更有效,我敢肯定。谢谢partlov,我做了balusc建议的更改,现在我可以自由使用ñs和tildes了!也许这只是对编辑器的错误编码。如果您使用的是eclipse open file properties,请参阅chupacabra.xhtmlw的编码,您使用哪个编辑器来编辑/保存Facelets文件?月食?@partlov谢谢partlov。右键单击chupacabra.xhtml,属性,资源,将文本文件编码设置为utf-8,关闭eclipse,运行eclipse-clean,仍然得到相同的异常。如果它比编辑器更有效,我敢肯定。谢谢partlov,我做了balusc建议的更改,现在我可以自由使用ñs和tildes了!