我使用 primefaces push 在 ap:notificationBar 中写入消息。如果我推送带有特殊字符(如俄罗斯字符)的消息,我有'?在我的留言中。我该如何解决这个问题?谢谢你的帮助。
(配置:primefaces 3.4 和 jsf2。我所有的 html 页面都是 utf8 编码)。
这是我的视图代码:
<p:notificationBar id="bar"
widgetVar="pushNotifBar"
position="bottom"
style="z-index: 3;border: 8px outset #AB1700;width: 97%;background: none repeat scroll 0 0 #CA837D;">
<h:form prependId="false">
<p:commandButton icon="ui-icon-close"
title="#{messages['gen.close']}"
styleClass="ui-notificationbar-close"
type="button"
onclick="pushNotifBar.hide();"/>
</h:form>
<h:panelGrid columns="1" style="width: 100%; text-align: center;">
<h:outputText id="pushNotifSummary" value="#{growlBean.summary}" style="font-size:36px;text-align:center;"/>
<h:outputText id="pushNotifDetail" value="#{growlBean.detail}" style="font-size: 20px; float: left;" />
</h:panelGrid>
</p:notificationBar>
<p:socket onMessage="handleMessage" channel="/notifications"/>
<script type="text/javascript">
function handleMessage(data) {
var substr = data.split(' %% ');
$('#pushNotifSummary').html(substr[0]);
$('#pushNotifDetail').html(substr[1]);
pushNotifBar.show();
}
</script>
和我的 Bean 代码:
public void send() {
PushContext pushContext = PushContextFactory.getDefault().getPushContext();
String var = summary + " %% " + detail;
pushContext.push("/notifications", var);