TOGOUTECH

javascript - 具有德语语言环境的 PrimeFaces Spinner

coder 2024-05-16 原文

在 Java 网络项目中,我们使用 PrimeFaces 4.0 作为 JSF 扩展。现在我们在 PrimeFaces 中遇到了 Spinner (p:spinner) 组件的问题。我们将微调器嵌入到我们自己的自定义标记中以设置一些默认值,例如 stepFactor 和区域设置。 JSF 标记的主体如下所示:

    <p:spinner id="#{id}" value="#{value}" min="#{min}" max="#{max}" stepFactor="0.1" size="5" onchange="#{onchange}" >
        <f:convertNumber pattern="#0.00" locale="de_DE"/>
    </p:spinner>

这对于组件的绑定(bind)和渲染来说效果很好。在下面的屏幕截图中,您会看到在“de_DE”语言环境中设置并正确格式化的 float 2.6f(使用逗号而不是点作为小数点分隔符)。

但是,当用户使用微调器按钮更改值时,格式立即出错。该值甚至从组件中解析错误。在下一个屏幕截图中,一旦我们单击“向上”按钮一次,您就可以看到完全相同的微调器。这实际上应该导致在组件中显示值“2,70”。

有没有人遇到过类似的问题?

是否有我们可以在此处应用的处理 p:spinner 组件的 JavaScript 的标准修复,或者我们是否真的需要深入研究 PrimeFaces JS 库并自行修复?

最佳答案

f:convertNumber 是服务器端转换。值的递增和递减事件是 JavaScript,在值返回到服务器之前不会考虑 f:convertNumber,因此应该使用丑陋的 JavaScript 解决方案。

我已经为这个问题创建了一个补丁,我使用了 Number.prototype.toLocaleString()将数字转换为本地化版本。

您所要做的就是包括 pf.spinner.local.fix.js并按以下方式设置您的首选语言环境(在 document.ready 中):

PF('spinnerWidgetVarName').cfg['local'] = 'de-DE';

有几点需要注意:

  • Number.prototype.toLocaleString()

  • 此补丁已在 PrimeFaces 5.0 和 4.0 上进行测试和确认

这是关于 github 的一个小例子和一个 Demo

关于javascript - 具有德语语言环境的 PrimeFaces Spinner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26795175/

有关javascript - 具有德语语言环境的 PrimeFaces Spinner的更多相关文章

  1. c# - 具有 JWT 身份验证的 RestSharp 不起作用 - 2

    这是我“学习”如何操作的页面:https://stormpath.com/blog/token-authentication-asp-net-core但对我来说这不起作用(也不适用于Fiddler)我的ApplicationUser模型有这个Controller:[Authorize]//workswhenit'snotset,doesn'tworkwhenit'sset[Route("api/[controller]")]publicclassApplicationUserController:Controller{privateIReposi

  2. c# - 为 ASP.NET MVC 错误设置不同的语言 - 2

    我在VisualStudio2015上为葡萄牙语配置了一个ASP.NETMVC应用程序。在调试此应用程序时,我设置了<customErrorsmode="Off"/>,但所有错误都以葡萄牙语显示,我想以英语查看。我试图在Web.config中进行设置:<globalizationuiCulture="en-US"culture="en-US"enableClientBasedCulture="true"/>在Global.asax中我试过:Thread.CurrentThread.CurrentUI

  3. c# - 如何映射具有对实体的引用的值类型? - 2

    我在EntityFramework中遇到映射问题。我有以下类(简化):publicclassBuilding{publicintID{get;set;}//*..snip..*otherpropertiespublicLocationLocation{get;privateset;}}publicclassLocation{publicstringStreet{get;set;}publicCountrycountry{get;set}}publicclassCountry{publicintID{get;set;}publicstringName{get;set;}}Building

  4. c# - 我不喜欢这样……这是在欺骗语言吗? - 2

    我曾多次看到类似下面的内容……我讨厌它。这基本上是在“欺骗”语言吗?或者..您是否认为这是“好的”,因为IsNullOrEmpty总是首先被评估?(我们可以争论一个字符串从函数中出来时是否应该为NULL,但这不是真正的问题。)stringsomeString;someString=MagicFunction();if(!string.IsNullOrEmpty(someString)&&someString.Length>3){//normalstring,dowhatever}else{//OnaNULLstring,itdropstohere,becausef

  5. ⌈C⌋哈希表UT_hash_handle——如何将结构体类型作为key - 2

    目录前言一、创建结构体二、定义哈希表指针三、函数操作1.HASH_ADD2.HASH_FIND四、运用剑指Offer52. 两个链表的第一个公共节点 两数之和692. 前K个高频单词前言很早之前,在我刷leetcode的时候遇见使用哈希表的题目,我怀着好奇心去搜索,发现C语言可以用数组简单模拟(但是key值超过数组最大范围那就不行了),但是写了一篇关于简单哈希表运用的文章 数组模拟哈希表的简单运用https://blog.csdn.net/Dusong_/article/details/127257647?sp

  6. 【Go语言实战】(1) Gin+微信小程序 车辆信息联络平台 - 2

    使用Golang+微信小程序前后端分离打造的车辆信息联络平台(也有一部分的python在里面。目录使用Golang+微信小程序前后端分离打造的车辆信息联络平台1.背景1.1创作背景:1.2实现目标:1.3开发环境:2.功能介绍2.1主体部分2.2用户模块2.3社区模块2.4聊天模块以及充电功能2.5算法方面2.5.1FasterRCNN网络车牌识别2.5.2YOLOV5车辆识别2.6后台管理模块3.总结1.背景1.1创作背景:在校园生活中,电动车是大多数同学的主要通勤工具,电动车的使用群体日益庞

  7. 使用java 实现mqtt两种方式 - 2

    前言在开发MQTT时有两种方式一种是使用PahoJava原生库来完成,一种是使用springboot来完成。PahoJava库实现EclipsePahoJavaClient(opensnewwindow)是用Java编写的MQTT客户端库(MQTTJavaClient),可用于JVM或其他Java兼容平台(例如Android)。EclipsePahoJavaClient提供了MqttAsyncClient和MqttClient异步和同步API通过Maven安装PahoJava<dependency>

  8. 【Python刷题篇】——Python入门 09 字典(上) - 2

    ?‍♂️个人主页:@北极的三哈个人主页?‍?作者简介:Python领域新星创作者。?系列专栏:《牛客题库-Python篇》?推荐《牛客网》——找工作神器|笔试题库|面试经验|实习经验内推,求职就业一站解决?点击链接进行注册学习牛客题库《

  9. 手把手教学,Python 游戏编程之实现飞机大战(含源代码) - 2

    文章目录一、游戏设定1、游戏界面展示和设定二、实现过程1.我方飞机2、敌方飞机3、定义武器4、武器补充库5、主模块总结:前言我想大家都是有玩过类似飞机大战的射击类游戏,也享受目标被消除通过后带来的愉悦感。那么如果用Python来实现飞机大战游戏?下面就跟大家一起用Python来做一个小游戏,不仅可以从中感受到乐趣,还可以提升自己的能力。一、游戏设定1、游戏界面展示和设定游戏的基本设定:敌方共有大中小3款飞机,分为高中低三种速度;子弹的射程并非全屏,而大概是屏幕长度的80%;消灭小飞机需要1发子弹,中飞机需要8发

  10. c# - 使用 LINQ 查找具有特定属性名称和值的 XElement - 2

    XDocumentxDocument=XDocument.Load("...");IEnumerable<XElement>elements=xDocument.Element("lfm").Element("events").Elements("event");try{foreach(XElementelminelements){comm.Parameters.AddWithValue("extID",elm.Element("id").Value??"");c

随机推荐

  1. c# - Visual Studio - 通过设计器在标签中添加换行符? - 2

    我有一个标签,我想用它来显示一些文本。我想显示几段文字。有没有办法通过设计器在文本中换行?(\n\r只显示\n\r)这是WinForms(其实是CompactFramework) 最佳答案 选择标签旁边的下拉菜单。然后您可以使用Enter键输入换行符。 关于c#-VisualStudio-通过设计器在标签中添加换行符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2714977

  2. c# - 如何确定枚举值是否具有一个或多个与之比较的值? - 2

    我有一个标有[Flags]属性的枚举,如下所示:[Flags]publicenumTag:int{None=0,PrimaryNav=1,HideChildPages=2,HomePage=4,FooterLink=8}在我的站点地图的站点地图节点上,我将标签组合的int值存储为一个属性。我需要做的是检查一个节点是否有一个或多个标签中的任何一个,例如标签.PrimaryNav|标记.HomePage.我正在努力使用必要的bool逻辑来确定枚举值是否具有一个或多个与之进行比较的值。如果不清楚,请见谅。如有必要,我可以提供更多信息。 最佳答案

  3. c# - C#中的文件夹复制 - 2

    这个问题在这里已经有了答案:CopytheentirecontentsofadirectoryinC#(27个答案)关闭6年前。我的机器的C:\TEXTFILES\驱动器中有一个包含10个文本文件的文件夹。我想将文件夹TEXTFILES及其内容从我的机器完全复制到另一台机器。如何使用C#复制相同内容。

  4. C# 切换/中断 - 2

    看来我需要在使用C#的switch语句中的每个caseblock中使用break。我可以在其他语言中看到这样做的原因,您可以在其中找到下一个case语句。caseblock是否有可能掉落到其他caseblock?非常感谢,非常感谢! 最佳答案 是的,您可以通过两种方式进入下一个案例block。您可以使用不需要中断的空案例,或者您可以使用goto跳转到下一个(或任何)案例:switch(n){case1:case2:case3:Console.WriteLine("1,2or3");gotocase4;case4:Co

  5. c# - 在 .NET 中移动符号位 - 2

    我正在从单色位图中读取位。我以相反的顺序将每16位存储在short中。如果位图中的位为黑色,则存储1。如果为白色,则存储0。例如:对于位图:bbbwbbbwbbbwwwww我的短是:0000011101110111我尝试这样做的第一种方法是:shortm;//...Colorc=bmp.GetPixel(j,i);if(c.R==Color.Black)m|=short.MinValue;m>>=1;//...在一次分配和轮类后,我得到了预期的-32768(1000000000000000)。第二次后我得到-16384(1100000000000000)。我将代码更改为使用

  6. c# - 是否有 .NET 方法来枚举所有可用的网络打印机? - 2

    是否有直接的方法来枚举.NET中所有可见的网络打印机?目前,我正在展示PrintDialog以允许用户选择打印机。问题在于,本地打印机也会显示(以及XPSDocumentWriter等)。如果我可以自己枚举网络打印机,我可以显示一个仅包含这些打印机的自定义对话框。谢谢!! 最佳答案 从LocalPrintServer.DefaultPrintQueue获取默认打印机从PrinterSettings.InstalledPrinters获取已安装的打印机(从用户的角度来看)枚举列表:任何以\\开头的打印机都是网络打印机-所以使用newP

  7. c# - C# 最小化所有打开的窗口 - 2

    我在论坛上看到这个C++代码,它最小化了所有打开的窗口#defineMIN_ALL419#defineMIN_ALL_UNDO416intmain(intargc,char*argv[]){HWNDlHwnd=FindWindow("Shell_TrayWnd",NULL);SendMessage(lHwnd,WM_COMMAND,MIN_ALL,0);Sleep(2000);SendMessage(lHwnd,WM_COMMAND,MIN_ALL_UNDO,0);return0;}如何在C#.net中访问FindWindow和SendMessageAPI函数以及HWN

  8. c# - 在 C# 下,try、throw 和 catch block 对性能的影响有多大 - 2

    首先声明:我有使用其他语言的经验,但仍在学习C#的精妙之处关于问题...我正在查看一些代码,它以我关心的方式使用try/catchblock。当调用解析例程时,程序员没有返回错误代码,而是使用了以下逻辑catch(TclExceptione){thrownewTclRuntimeError("unexpectedTclException:"+e.Message,e);}这被调用者捕获,抛出相同的错误......被调用者捕获,抛出相同的错误........被调用者捕获,抛出相同的错误......备份大约6个级别。我是否认为所有这些catch/throwblock都导致了性

  9. c# - 将 ICollection<T> 转换为 List<T> - 2

    我正在尝试使用以下代码将ICollection转换为List-ICollection<DataStructure>list_Stuctures=dataConnectorService.ListStructures(dataConnector,SupportedDataStructures.All);List<DataStructure>lst_DataStructure=newList<DataStructure>();list_Stuctures.CopyTo(lst_DataStructure);在最后一行,我得到以下异常-Exception=

  10. c# - WPF 在第二个窗口打开时禁用主窗口,直到它关闭 - 2

    我有一个WPF应用程序,它有一个主窗口和一个可以从主窗口中的按钮打开的第二个窗口。我希望主窗口被禁用,而第二个窗口在VisualStudio中作为“关于”窗口打开。 最佳答案 试试这个ShowDialogmethod而不是Show将第二个窗口作为对话框打开。您有一个已经带有窗口的WPF项目。这个应用应该可以运行。右键单击项目并添加新窗口。您将其命名为Window1.xaml您现在会注意到Window1.xaml和Window1.xaml.cs添加到您的项目中。(窗口的类名是Window1,它位于.xaml.cs文件中,它派生自Win