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. javascript - 使用 capybara 捕获浏览器控制台日志 - 2

    我需要使用Ruby和Capybara捕获浏览器的控制台日志(类别:信息)。到目前为止,我已经尝试使用driver.manage.logs.get(:browser)或(:client)但是,使用它,结果不是我想要的。它给出了selenium和浏览器之间的交互结果,我可以在其中看到我的javascript语句已发送执行,但结果输出无法被捕获。 最佳答案 使用selenium时日志是否可用取决于您使用Selenium的浏览器。如果您使用的是Firefox,那您就不走运了,因为它不支持日志检索API,但是由于您使用的是Chrome,因此可

  2. javascript - 3维数组到对象数组 - 2

    卡在这个问题上有一段时间了。letemployees=[[['firstName','Joe'],['lastName','Blow'],['age',42],['role','clerk']],[['firstName','Mary'],['lastName','Jenkins'],['age',36],['role','manager']]]屈服:[{first

  3. javascript - 流中的条件类型 - 2

    是否可以根据条件在流中键入变量?像这样:consttype='xyz';consta:(type==='xyz')?number:string; 最佳答案 Flow中的类型级条件可以使用类型调用($Call类型)来模拟:type$If<X:boolean,Then,Else=empty>=$Call<&((true,Then,Else)=>Then)&((false,Then,Else)=>Else),X,Then,Else,>;type$Not&l

  4. javascript - react-router 在生产和激增部署中不起作用 - 2

    我的React应用程序在本地主机上运行良好,但是当我将其部署在gh-pages或surge中时,它无法让我使用URL在页面之间移动。这是项目仓库link演示网址here用户可以点击右上角的menuItem进入注册页面。但如果用户使用http://chat.susi.ai/signup/URL,它给出了404页面我尝试了几种来自互联网的解决方案,但没有奏效。下一个问题是:我创建了一个404页面以在用户尝试移动到损坏的链接时显示。它在localhost中工作正常。但不在生产中。我试过this解决方案,但没有任何改变。这是我的index.js文件的一部分constApp=()=>(&l

  5. JavaScript 检查时区名称是否有效 - 2

    有没有一种方法可以在不使用外部库的情况下在JavaScript中检查时区名称是否有效?当用户在文本字段中输入时区名称时,我想验证时区是否有效?我知道我们可以使用moment-timezone库轻松完成。但我不想使用任何额外的库。我正在寻找纯JavaScript方式。isValidTimeZone(name){//returntrue/false}isValidTimeZone('Asia/Colombo');//returnstrueisValidTimeZone('America/Los_Angeles');//returnstrueisValidTi

  6. javascript - Node JS 浏览器模拟(cookies、session、headers) - 2

    我需要像普通浏览器一样从Nodejs发出请求。我是什么意思?我可以设置任何HTTP信息,例如cookie、header、正文。因此,根据需要构建HTTP请求。请求发出后,所有的响应数据都应该是可读的,比如SetCookie....如果可以在session期间自动保存cookie,那就太好了。因此,我不需要在每次提出所有进一步请求时都包含它们。所以只需模拟一个真实的浏览器以保持session有没有框架库可以提供这样的功能? 最佳答案 对于不需要解析HTML或运行客户端JavaScript的情况,您可以使用简单的工具,例如Request

  7. javascript - 从对象数组中过滤唯一值 - 2

    这个问题在这里已经有了答案:GetalluniquevaluesinaJavaScriptarray(removeduplicates)(91个答案)关闭5年前。如何使用Array.filter()返回唯一的id和name?我的场景与我研究过的解决方案略有不同,因为我有一个对象数组。我找到的每个示例都包含单个值的平面数组。data=[{id:555,name:"Sales",person:"Jordan"},{id:555,name:"Sales",person:"Bob"},{id:555,name:"Sales

  8. javascript - 如何在 ChartJS 中使用溢出滚动修复图表图例宽度-高度 - 2

    我想为我的元素创建饼图,所以我正在使用ChartJS,但是chartJS存在一些问题,如果我使用10到20个数据字段,那么时间图表看起来不错,但是当我我在一个图表中应用了50到60个以上的数据字段,所以图表看起来比图例小,如果有时数据字段比隐藏的图表多,你只能看到图例,图表就不见了。我想为该图例设置高度或宽度,如果有更多数据,也适用于滚动条。这是供您引用的fiddle链接https://jsfiddle.net/KDM1010/5um78rbk/<canvasid="myChart"width="500"height="300"&g

  9. javascript - Vue (nuxt) 中的全局组件 - 2

    在构建Vue应用程序时,我们在每个模板中重复使用某些Vue组件。我们的网格系统存在于.region、.layout、.grid、.column元素之外。它们都是独立的Vue组件(,...)。我们现在在每个模板中都这样做:importBlMainfrom'~components/frame/main/Main.vue'importBlRegionfrom'~components/frame/region/Region.vue'importBlLayoutfrom'~components/frame/layout/Layout.vue'imp

  10. javascript - Accessibility - React 确保点击事件有按键事件 - 2

    我想确保我所有的onClick事件都在onKeyDown事件旁边。我将使用eslint-plugin-jsx-a11y来确保这一点。但在代码中,这是一种实现这种泛型的方法。我的意思是,一直这样做会很烦人:if(event.keyCode===13){...}如果用户使用onClick中的执行函数,我希望有一种方法可以告诉onKeyDown中的元素。或者类似的解决方案http://www.karlgroves.com/2014/11/24/ridiculously-easy-trick-for-keyboard-accessibility/例如,在Angular方面,我很清楚。让我们寻找

随机推荐

  1. javascript - 使用 capybara 捕获浏览器控制台日志 - 2

    我需要使用Ruby和Capybara捕获浏览器的控制台日志(类别:信息)。到目前为止,我已经尝试使用driver.manage.logs.get(:browser)或(:client)但是,使用它,结果不是我想要的。它给出了selenium和浏览器之间的交互结果,我可以在其中看到我的javascript语句已发送执行,但结果输出无法被捕获。 最佳答案 使用selenium时日志是否可用取决于您使用Selenium的浏览器。如果您使用的是Firefox,那您就不走运了,因为它不支持日志检索API,但是由于您使用的是Chrome,因此可

  2. javascript - 3维数组到对象数组 - 2

    卡在这个问题上有一段时间了。letemployees=[[['firstName','Joe'],['lastName','Blow'],['age',42],['role','clerk']],[['firstName','Mary'],['lastName','Jenkins'],['age',36],['role','manager']]]屈服:[{first

  3. javascript - 流中的条件类型 - 2

    是否可以根据条件在流中键入变量?像这样:consttype='xyz';consta:(type==='xyz')?number:string; 最佳答案 Flow中的类型级条件可以使用类型调用($Call类型)来模拟:type$If<X:boolean,Then,Else=empty>=$Call<&((true,Then,Else)=>Then)&((false,Then,Else)=>Else),X,Then,Else,>;type$Not&l

  4. javascript - react-router 在生产和激增部署中不起作用 - 2

    我的React应用程序在本地主机上运行良好,但是当我将其部署在gh-pages或surge中时,它无法让我使用URL在页面之间移动。这是项目仓库link演示网址here用户可以点击右上角的menuItem进入注册页面。但如果用户使用http://chat.susi.ai/signup/URL,它给出了404页面我尝试了几种来自互联网的解决方案,但没有奏效。下一个问题是:我创建了一个404页面以在用户尝试移动到损坏的链接时显示。它在localhost中工作正常。但不在生产中。我试过this解决方案,但没有任何改变。这是我的index.js文件的一部分constApp=()=>(&l

  5. JavaScript 检查时区名称是否有效 - 2

    有没有一种方法可以在不使用外部库的情况下在JavaScript中检查时区名称是否有效?当用户在文本字段中输入时区名称时,我想验证时区是否有效?我知道我们可以使用moment-timezone库轻松完成。但我不想使用任何额外的库。我正在寻找纯JavaScript方式。isValidTimeZone(name){//returntrue/false}isValidTimeZone('Asia/Colombo');//returnstrueisValidTimeZone('America/Los_Angeles');//returnstrueisValidTi

  6. javascript - Node JS 浏览器模拟(cookies、session、headers) - 2

    我需要像普通浏览器一样从Nodejs发出请求。我是什么意思?我可以设置任何HTTP信息,例如cookie、header、正文。因此,根据需要构建HTTP请求。请求发出后,所有的响应数据都应该是可读的,比如SetCookie....如果可以在session期间自动保存cookie,那就太好了。因此,我不需要在每次提出所有进一步请求时都包含它们。所以只需模拟一个真实的浏览器以保持session有没有框架库可以提供这样的功能? 最佳答案 对于不需要解析HTML或运行客户端JavaScript的情况,您可以使用简单的工具,例如Request

  7. javascript - 从对象数组中过滤唯一值 - 2

    这个问题在这里已经有了答案:GetalluniquevaluesinaJavaScriptarray(removeduplicates)(91个答案)关闭5年前。如何使用Array.filter()返回唯一的id和name?我的场景与我研究过的解决方案略有不同,因为我有一个对象数组。我找到的每个示例都包含单个值的平面数组。data=[{id:555,name:"Sales",person:"Jordan"},{id:555,name:"Sales",person:"Bob"},{id:555,name:"Sales

  8. javascript - 如何在 ChartJS 中使用溢出滚动修复图表图例宽度-高度 - 2

    我想为我的元素创建饼图,所以我正在使用ChartJS,但是chartJS存在一些问题,如果我使用10到20个数据字段,那么时间图表看起来不错,但是当我我在一个图表中应用了50到60个以上的数据字段,所以图表看起来比图例小,如果有时数据字段比隐藏的图表多,你只能看到图例,图表就不见了。我想为该图例设置高度或宽度,如果有更多数据,也适用于滚动条。这是供您引用的fiddle链接https://jsfiddle.net/KDM1010/5um78rbk/<canvasid="myChart"width="500"height="300"&g

  9. javascript - Vue (nuxt) 中的全局组件 - 2

    在构建Vue应用程序时,我们在每个模板中重复使用某些Vue组件。我们的网格系统存在于.region、.layout、.grid、.column元素之外。它们都是独立的Vue组件(,...)。我们现在在每个模板中都这样做:importBlMainfrom'~components/frame/main/Main.vue'importBlRegionfrom'~components/frame/region/Region.vue'importBlLayoutfrom'~components/frame/layout/Layout.vue'imp

  10. javascript - Accessibility - React 确保点击事件有按键事件 - 2

    我想确保我所有的onClick事件都在onKeyDown事件旁边。我将使用eslint-plugin-jsx-a11y来确保这一点。但在代码中,这是一种实现这种泛型的方法。我的意思是,一直这样做会很烦人:if(event.keyCode===13){...}如果用户使用onClick中的执行函数,我希望有一种方法可以告诉onKeyDown中的元素。或者类似的解决方案http://www.karlgroves.com/2014/11/24/ridiculously-easy-trick-for-keyboard-accessibility/例如,在Angular方面,我很清楚。让我们寻找