如何解决为什么h:inputText不使用默认语言环境进行数字转换?
| 我有一些“ 0”字段来保存数字。尽管我在faces-config.xml中具有以下条目,但所有十进制值都以\“。\”作为分隔符显示:<locale-config>
<default-locale>de</default-locale>
</locale-config>
和电话
FacesContext.getCurrentInstance().getViewRoot().getLocale()
返回\“ de \”。
但是,如果我在h:inputText
中添加<f:convertNumber/>
,则会显示正确的小数点分隔符(例如,6.2代替6.2)。
我是否必须在所有输入字段中添加ѭ5?还是没有?
谢谢你的帮助!
解决方法
默认格式为浮点数的“ 6”格式。
考虑bean属性
foo
:
public class MyBean implements Serializable {
private double foo;
public double getFoo() { return foo; }
public void setFoo(double foo) { this.foo = foo; }
}
inputText
不直接支持数字类型;它会被赋予一个对象(java.lang.Double
)并在输出上对其调用toString
。在提交表单时,浏览器将发送一个“ 12”,并且表达式语言根据其类型强制规则(请参阅EL规范)将其强制返回为double。
对于更复杂的逻辑,需要一个转换器。这是一个功能强大的模型,因为您可以在不需要输入/输出控件支持转换的情况下与任何类型进行转换。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。