当前位置: 首页 > 面试题库 >

无法从上下文将请求字符编码设置为UTF-8

呼延运恒
2023-03-14
问题内容

我正在尝试将示例从Primefaces实施到WAB包中。

    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"    
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:p="http://primefaces.org/ui"  >
        <h:head>
            <ui:insert name="header">           
                <ui:include src="header.xhtml"/>         
            </ui:insert>
        </h:head>
        <h:body>

            <h1><img src="resources/css/images/icon.png" alt="NVIDIA.com" /> History Center</h1>
            <!-- layer for black background of the buttons -->
            <div id="toolbar" style="margin: 0 auto; width:1180px; height:30px; position:relative;  background-color:black">
                <!-- Include page Navigation -->
                <ui:insert name="Navigation">           
                    <ui:include src="Navigation.xhtml"/>         
                </ui:insert>

            </div>

            <div id="logodiv" style="position:relative; top:35px; left:0px;"> 
                <h:graphicImage alt="Demo edit form"  style="position:relative; top:-20px; left:9px;"  value="resources/images/logo_linuxz.png" />
            </div>
            <div id="main" style="margin: 0 auto; width:1190px; height:700px; position:absolute;  background-color:transparent; top:105px">

                <div id="mainpage" style="margin: 0 auto; width:1190px; height:500px; position:absolute;  background-color:transparent; top:80px">

                    <div id="settingsHashMap" style="width:350px; height:400px; position:absolute;  background-color:r; top:20px; left:1px">
                        <h:form id="test">

                            <p:barChart id="basic" value="#{LinuxController.categoryModel}" legendPosition="ne"
                                        title="Basic Bar Chart" min="0" max="200" style="height:300px"/>

                            <p:barChart id="horizontal" value="#{LinuxController.categoryModel}" legendPosition="se" style="height:300px"
                                        title="Horizontal Bar Chart" orientation="horizontal" min="0" max="200"/>

                            <p:barChart id="stacked" value="#{LinuxController.categoryModel}" legendPosition="ne" style="height:300px"
                                        title="Stacked Bar Chart" stacked="true" barMargin="50" min="0" max="300"/>


                        </h:form>


                    </div>

                </div>  
            </div>

        </h:body>
    </html>

import org.glassfish.osgicdi.OSGiService;
import org.primefaces.model.chart.CartesianChartModel;
import org.primefaces.model.chart.ChartSeries;

// Update form example
@Named("LinuxController")
@SessionScoped
public class Linux implements Serializable {

    private CartesianChartModel categoryModel;

    public Linux() {
        createCategoryModel();

    }

    public CartesianChartModel getCategoryModel() {
        return categoryModel;
    }

    private void createCategoryModel() {
        categoryModel = new CartesianChartModel();

        ChartSeries boys = new ChartSeries();
        boys.setLabel("Boys");

        boys.set("2004", 120);
        boys.set("2005", 100);
        boys.set("2006", 44);
        boys.set("2007", 150);
        boys.set("2008", 25);

        ChartSeries girls = new ChartSeries();
        girls.setLabel("Girls");

        girls.set("2004", 52);
        girls.set("2005", 60);
        girls.set("2006", 110);
        girls.set("2007", 135);
        girls.set("2008", 120);

        categoryModel.addSeries(boys);
        categoryModel.addSeries(girls);
    }
}

当我尝试访问JSF页面时,该页面为空。我在Glassfish日志文件中收到此错误:

[#|2012-06-06T20:53:47.931+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=321;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

[#|2012-06-06T20:53:48.880+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=323;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

[#|2012-06-06T20:53:52.714+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=321;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

[#|2012-06-06T20:53:56.434+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=324;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

[#|2012-06-06T20:53:57.591+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=322;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

[#|2012-06-06T20:54:25.828+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=323;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

[#|2012-06-06T20:54:26.912+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=321;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

[#|2012-06-06T20:54:28.010+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=324;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#]

我该如何解决这个问题?我想这可能是由POM配置引起的吗?


问题答案:

JSF / Facelets默认情况下已经使用UTF-8(在还原视图期间进行设置),但是PrimeFaces
ajax视图处理程序会在还原视图之前尝试访问请求参数,因此将使用服务器的默认字符编码(ISO- 8859-1。您需要将以下条目添加到<glassfish-web-app>您的/WEB-INF/glassfish-web.xml文件,以指示GlassFish服务器使用UTF-8,以及:

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


 类似资料:
  • 问题内容: 我正在创建一个简单的登录页面,我想将登录名和密码参数作为UTF-8编码的字符串传递。正如您在下面的代码中看到的那样,第一行是我将编码设置为UTF-8的位置,但这似乎毫无意义,因为它不起作用。当我在重音符号中使用登录名和密码参数时,结果页面会收到奇怪的字符。 如何以一种适用于所有浏览器的方式正确设置字符编码? 问题答案: 在只设置响应的字符编码和所述HTTP的属性标题中。基本上,它告诉服

  • 问题内容: 下面是我的代码,它打算获取两个.ckl文件,比较两个文件,添加新项目并创建一个新的合并文件。该程序在Netbeans中运行时可以正确执行,但是,当执行.jar时,该程序似乎未使用UTF-8编码文件。我对编程很陌生,想知道在什么地方或如何执行这种编码? **我删除了Swing代码和其他行,以便仅显示我的方法,该方法完成所有比较和合并。 问题答案: Java具有广泛的,内容丰富的文档。保留

  • 我有一个jsp文件,在那里我收集表单值,并通过jQuery Ajax将其发送到strut 2 action class。 我的Ajax函数看起来像 当我解码并提醒它的文本我正确编码和解码。 当我通过ajax将其发送到struts2时,它会产生问题。 我已经检查了Interceptor中的值它显示值??????? 拦截器 在我的jsp文件中,我将内容类型设置为UTF-8,在ajax中,我也检查了内容

  • 问题内容: 我有一个带有“ñ”字符的字符串,并且我有一些问题。我需要将此字符串编码为UTF-8编码。我已经通过这种方式尝试过,但是没有用: 如何将该字符串编码为utf-8? 问题答案: Java中的对象使用无法修改的UTF-16编码。 唯一可以使用不同编码的是。因此,如果你需要UTF-8数据,则需要一个。如果你有一个包含意外数据的,则问题出在较早的地方,该错误地将一些二进制数据错误地转换为a (即

  • 我正在创建一个简单的登录页面,并希望将登录和密码参数作为UTF-8编码字符串传递。正如您在下面的代码中所看到的,第一行是我将编码设置为UTF-8的地方,但这似乎没有意义,因为它不起作用。当我使用带有重音符号的登录和密码参数时,结果页面会收到奇怪的字符。 如何以适用于所有浏览器的方式正确设置字符编码?

  • 我目前的logClass有一个问题,无法打印umlauts“üäß”,我创建这个命令是为了将控制台上的每个字符串打印到JTextPane。 我已经在方法“控制台”上将PrintStream设置为使用“UTF-8”,并且我已经尝试了不同的字体,但是在尝试打印特殊字符时,我总是会出现错误字符。有人会对如何解决这个问题提出建议吗? 这是我的代码: