[SEAM] f:convertNumber 的输入和显示问题

无双Rama 2009-07-27
页面有一段代码是显示某个栏位的值的,同时也可以输入进行修改,所以用inputText。

<h:outputText vlaue="Total :" />
<h:inputText value="#{salary.totalNumber}"
</h:inputText>

后来要求让数字呈“ 1,000.00 ”的格式 显示,所以我改成这样:

<h:outputText vlaue="Total :" />
<h:inputText value="#{salary.totalNumber}"
   <f:convertNumber type="number" pattern="#,###.##" /></h:inputText>

问题出现了,就是这个转换器可以让数字显示成我想要的格式,但是在我输入数据并提交的时候,它报错, 要求我按 "#,###.##"格式输入数字。

我现在想要它仅仅在显示的时候帮我转换,在输入的时候不要求我按指定的格式输入,该怎么解决呢?
5day 2009-07-27
用js,onclick的时候将格式换回来。
无双Rama 2009-07-27
5day 写道
用js,onclick的时候将格式换回来。

你是说我在点击保存按钮的时候调用js吗? 那该怎么写呢,我要几十个这样的inputText。。。
无双Rama 2009-07-28
终于知道这个错是为什么了。。。

inputText 绑定的是实体里面的set方法,当刷新form 的时候它会自动检测,这时候就会要求按照具体的格式才能通过,如输入的是500就不符合 “#,###.##”,所以报错
现在只有用笨方法,把显示和编辑分开写,并且用于显示的inputText的disabled属性设置为true。用于输入的inputText 直接不用格式转换,这样就不会有问题了
orangeven 2009-07-29
convertnumber有一个参数groupingUsed,设为true的话会自动加入逗号。
还有maxIntegerDigits,minFractionDigits都设为2的话,也许可以强迫输入2位小数。

要注意的是convertnumber会自动根据user输入的数字转换成相应的类,看看这个吧:http://seamframework.org/Community/ConvertnumberArgumentTypeMismatch
无双Rama 2009-07-29
orangeven 写道
convertnumber有一个参数groupingUsed,设为true的话会自动加入逗号。
还有maxIntegerDigits,minFractionDigits都设为2的话,也许可以强迫输入2位小数。

要注意的是convertnumber会自动根据user输入的数字转换成相应的类,看看这个吧:http://seamframework.org/Community/ConvertnumberArgumentTypeMismatch

谢谢你的热心帮助
我会好好看看···
5day 2009-07-29
<h:inputText value="#{salary.totalNumber}"
   <f:convertNumber groupingUsed="true" type="number" pattern="#,###.##" />
</h:inputText>

受教了。
Global site tag (gtag.js) - Google Analytics