Javascript JSF-outputFormat尝试将参数解析为数字

Javascript JSF-outputFormat尝试将参数解析为数字,javascript,jsf,localization,Javascript,Jsf,Localization,正在尝试将primefaces日历与本地化一起使用。我考虑将javascript属性数组添加到相应的区域设置消息属性文件中 像这样使用它: <script type="text/javascript"> <h:outputFormat value="#{msg.primefacesLocale}" escape="false"> <f:param value="test"/> </h:outputFormat> &

正在尝试将primefaces日历与本地化一起使用。我考虑将javascript属性数组添加到相应的区域设置消息属性文件中

像这样使用它:

<script type="text/javascript">
    <h:outputFormat value="#{msg.primefacesLocale}" escape="false">
        <f:param value="test"/>
    </h:outputFormat>
</script>
这里怎么了

编辑:

使用:
很好。

有一些特殊字符。
{
}
'
{
}
表示格式参数索引的开始和结束。
是一个转义字符(就像
\
是字符串一样)

开头的
\u007B
表示
{
。实际上应该用
'
将其包围起来进行转义。结尾的
\u007D
表示
}
也是如此

primefacesLocale=PrimeFaces.locales['de'] = '\u007B' closeText: 'Schlie\u00DFen', prevText: 'Zur\u00FCck', nextText: 'Weiter', {0} weekHeader: 'Woche', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '', timeOnlyTitle: 'Nur Zeit', timeText: 'Zeit', hourText: 'Stunde', minuteText: 'Minute', secondText: 'Sekunde', currentText: 'Aktuelles Datum', ampm: false, month: 'Monat', week: 'Woche', day: 'Tag', allDayText: 'Ganzer Tag''\u007D';
顺便说一下,您也可以将那些
{
}
普通香草放在字符串中

primefacesLocale=PrimeFaces.locales['de'] = '{' closeText: 'Schlie\u00DFen', prevText: 'Zur\u00FCck', nextText: 'Weiter', {0} weekHeader: 'Woche', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '', timeOnlyTitle: 'Nur Zeit', timeText: 'Zeit', hourText: 'Stunde', minuteText: 'Minute', secondText: 'Sekunde', currentText: 'Aktuelles Datum', ampm: false, month: 'Monat', week: 'Woche', day: 'Tag', allDayText: 'Ganzer Tag''}';
注意:如上所述,
是一个转义字符,如果您想将其表示为原样,请使用其中两个

primefacesLocale=PrimeFaces.locales['de'] = '{' closeText: ''Schlie\u00DFen'', prevText: ''Zur\u00FCck'', nextText: ''Weiter'', {0} weekHeader: ''Woche'', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '''', timeOnlyTitle: ''Nur Zeit'', timeText: ''Zeit'', hourText: ''Stunde'', minuteText: ''Minute'', secondText: ''Sekunde'', currentText: ''Aktuelles Datum'', ampm: false, month: ''Monat'', week: ''Woche'', day: ''Tag'', allDayText: ''Ganzer Tag'''}';

然而,这反过来又是无效的JSON。字符串键和值应该是双引号(尽管大多数WebBrowser都支持双引号)。

我在java中构建的参数值需要以同样的方式转义吗?不知道我是否想用它。刚刚构建了提供给primefaces团队的功能。
primefacesLocale=PrimeFaces.locales['de'] = '{' closeText: 'Schlie\u00DFen', prevText: 'Zur\u00FCck', nextText: 'Weiter', {0} weekHeader: 'Woche', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '', timeOnlyTitle: 'Nur Zeit', timeText: 'Zeit', hourText: 'Stunde', minuteText: 'Minute', secondText: 'Sekunde', currentText: 'Aktuelles Datum', ampm: false, month: 'Monat', week: 'Woche', day: 'Tag', allDayText: 'Ganzer Tag''}';
primefacesLocale=PrimeFaces.locales['de'] = '{' closeText: ''Schlie\u00DFen'', prevText: ''Zur\u00FCck'', nextText: ''Weiter'', {0} weekHeader: ''Woche'', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '''', timeOnlyTitle: ''Nur Zeit'', timeText: ''Zeit'', hourText: ''Stunde'', minuteText: ''Minute'', secondText: ''Sekunde'', currentText: ''Aktuelles Datum'', ampm: false, month: ''Monat'', week: ''Woche'', day: ''Tag'', allDayText: ''Ganzer Tag'''}';