这类似于question about charset validation不同之处在于某些字符(例如, “ż ź ć ”)被示出为HTML实体(“ ż ź ć”)之后提交。奇怪的是像“&”保存为“&”。JSF请求范围形式
我已经在Tomcat端尝试过Spring的CharacterEncodingFilter和Connector,但这似乎没有任何帮助。数据库编码似乎不是一个问题,因为我的表单在与AJAX请求和会话bean一起使用时(与正常的提交和请求范围相反),工作得很好。
这里是我的表格的一部分:
<?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:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:body>
<ui:composition template="/tpls/main-layout.xhtml">
<ui:define name="content">
<h:form>
...
<p:commandButton value="#{i18n.msg('_Save')}"
action="view" actionListener="#{readerController.save}" ajax="false" />
...
<p:panelGrid>
<p:row>
<p:column><h:outputLabel for="lastName" value="#{i18n.msg('Reader.lastName')}" /></p:column>
<p:column><p:inputText id="lastName" value="#{readerController.currentReader.lastName}" required="true">
<p:ajax update="msg-lastName" event="change" />
<f:validateRegex pattern="#{applicationConfiguration.nameValidationPattern}" />
<f:validateLength maximum="50" />
</p:inputText></p:column>
<p:column><p:message for="lastName" id="msg-lastName" /></p:column>
</p:row>
...
</p:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
编辑:正如澄清 - 您可以替换之类的东西#{i18n.msg('_Save')}
与Save
和#{applicationConfiguration.nameValidationPattern}
与例如[^0-9]
。
您是否尝试过使用在
? – 2012-07-17 14:07:52是的,我以前曾尝试过'f:view'。不幸的是他们都没有帮助。 – Nux 2012-07-17 14:38:29
当然不会有帮助,HTTP HTTP请求会忽略meta http-equiv头。 f:view编码仅控制默认为UTF-8的响应编码。 – BalusC 2012-07-17 14:43:30