相关疑难解决方法(0)

通过PrimeFaces输入组件检索的Unicode输入已损坏

当我还是用PrimeFaces V2.2.1,我能键入Unicode输入诸如与PrimeFaces输入组件中国如<p:inputText><p:editor>,并检索在管理bean方法好形状的输入.

但是,在我升级到PrimeFaces v3.1.1后,所有这些字符都变成了Mojibake或问号.只有拉丁语输入才能正常,中文,阿拉伯语,希伯来语,西里尔语等字符会变得格格不入.

这是怎么造成的,我该如何解决?

unicode jsf character-encoding primefaces mojibake

13
推荐指数
1
解决办法
1万
查看次数

JSP/GlassFish:如何正确设置UTF-8编码

我正在寻求帮助,将堆叠中的所有图层都转换为UTF-8编码.

我找到了这篇好文章:

http://www.javapractices.com/topic/TopicAction.do?Id=206

描述我需要担心编码的3个地方.由于我的(1)Oracle数据库当前设置为UTF-8,因此需要担心(2)浏览器和(3)服务器.

我也发现了这篇详细的文章

http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest

我正在尝试遵循以下内容,但有一些关于实现的新手问题.

为了解决浏览器问题,我确保在每个JSP页面的顶部包含以下内容:

<%@page pageEncoding="UTF-8"%> 
Run Code Online (Sandbox Code Playgroud)

(供参考,见这里).

为了解决服务器问题,我确保在发出request.getParameter()request.getAttribute()声明之前在Java servlet和JSP页面中包含以下行:

request.setCharacterEncoding("UTF-8");
Run Code Online (Sandbox Code Playgroud)

由于我使用的是GlassFish 3.1.2,我知道它默认不使用UTF-8,所以我需要以某种方式手动设置它.

我见过很多网站都在谈论一个名为的文件glassfish-web.xml.这是普通glassfish的一部分吗?我不知道在哪里找到它.我一直在使用web.xml我的WEB-INF文件夹中的文件作为我的Web应用程序.有人可以帮我弄清楚我是否需​​要修改这个web.xml文件,或者我是否需要找到或创建一个名为的新文件glassfish-web.xml来配置glassfish的编码?

我的web.xml文件以:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> 
...
Run Code Online (Sandbox Code Playgroud)

对于JSP/servlet请求,我在web.xml文件中包含以下行

<parameter-encoding default-charset="UTF-8"/>
Run Code Online (Sandbox Code Playgroud)

可以放入web.xml文件吗?或者,是否需要进入某个glassfish-web.xml文件?

对于JSP/servlet响应,我将以下内容放入我的web.xml文件中(请参阅此处接受的答案):

<jsp-config>
   <jsp-property-group>
       <url-pattern>*.jsp</url-pattern>
       <page-encoding>UTF-8</page-encoding>
   </jsp-property-group> 
</jsp-config>
Run Code Online (Sandbox Code Playgroud)

我假设这些线只插入<web-app>和之间</web-app>.但是,让我知道他们是否应该进入其他描述符(例如<glassfish-web-app></glassfish-web-app> …

java servlets glassfish utf-8 character-encoding

7
推荐指数
1
解决办法
1万
查看次数

我的第一个反向ajax应用程序

我想了解反向ajax,我发现了一个名为ICEPush的小工具,我认为这可能是一个很好的起点.我无法实现一个非常简单的应用程序.我正在学习本教程,但我使用的是Glassfish 3.1而不是Eclipse,而不是使用Eclipse,而是使用NetBeans 7.1

我完全按照教程中的说法完成,请参阅我的代码.这是将成为Ajax推送目标的页面:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Easy Ajax Push - Color</title>
    </h:head>

        <h:body>
            <h:dataTable value="#{messageBean.textList}" var="current">
                <h:column>
                    <h:outputText value="#{current.text}"
                                  style="color: #{current.color};"/>
                </h:column>
            </h:dataTable>

            <hr width="100%"/>

            <h:form>
                <h:panelGrid columns="4">
                    Choose a Color:
                    <h:commandButton value="Red"
                                     action="#{colorBean.chooseColor}"
                                     style="color: white; background-color: red;">
                        <f:setPropertyActionListener target="#{colorBean.color}" value="red"/>
                    </h:commandButton>
                    <h:commandButton value="Blue"
                                     action="#{colorBean.chooseColor}"
                                     style="color: white; background-color: blue;">
                        <f:setPropertyActionListener target="#{colorBean.color}" value="blue"/>
                    </h:commandButton>
                    <h:commandButton value="Green"
                                     action="#{colorBean.chooseColor}"
                                     style="color: white; background-color: green;">
                        <f:setPropertyActionListener target="#{colorBean.color}" value="green"/>
                    </h:commandButton>
                </h:panelGrid>
            </h:form>

        </h:body>

</html>
Run Code Online (Sandbox Code Playgroud)

以下是需要的2个托管bean: ColorBean.java

@ManagedBean(name="colorBean")
@ViewScoped
public class ColorBean …
Run Code Online (Sandbox Code Playgroud)

java jsf icefaces reverse-ajax java-ee

3
推荐指数
1
解决办法
1641
查看次数

从Servlet访问ViewScoped ManagedBean

背景信息:我的jsf页面中有一个文件上传小程序.这个小程序需要一个地址,它可以发送它的POST请求.(我无法编辑此帖子请求以添加更多字段或其他内容).然后我的servlet的post方法存储文件.托管bean无法完成此作业,因为必须使用@MultiPartConfig注释servlet,并且我无法将此批注添加到jsf托管bean.为了强制上传小程序使用相同的会话,我根据这篇文章在帖子请求中添加了一个名为jsessionId的URL属性.在我的servlet中,我现在能够访问会话范围的bean.

现在我有一个ViewScoped bean,我存储了一些我想在servlet中使用的表单输入数据,因为将这些输入添加到post请求不起作用(Applet是第三方项目(JUploadApplet),并且由于某种原因它没有无法添加其他表单数据.现在是否可以从servlet中访问ViewScoped bean?如果我将范围更改为SessionScope,我可以处理输入但是使用ViewScoped,如果我尝试像这样访问bean,我会得到一个NullPointerException:UploadBean uploadBean =(UploadBean)request.getSession().getAttribute("uploadBean");

jsf applet java-ee jsf-2 managed-bean

2
推荐指数
1
解决办法
1216
查看次数