使用Struts2标签格式化数字

sma*_*ong 5 java format struts2 bigdecimal number-formatting

我想在jsp页面中格式化一些数字.
首先,我在我的porperties中定义了一些资源
format.number.with2Decimal={0,number,#0.00}

......
问题1:
我想知道'#'和'0'是什么意思?
0.00,#0.00,##.00,### 0.00
谁能告诉我它们之间的区别?谢谢!

问题2:
如果我在我的动作BigDecimal number1中定义一个BigDecimal类型;

然后我的页面应该使用一种格式来显示这个值,
1.if number1=null then show -NIL-
2.if number1=0 then show -NIL-
3.if number1>0 then show 1.00,3434.98 .....
请忽略数字<0

问题3:
将number1更改为String,
1.if number1=null or empty or blank then show -NIL-
2.if number1=Hello then show Hello ....

你能帮我个忙吗?

cod*_*iot 5

干得好 :

<s:property value="getText('{0,number,#,##0.00}',{profit})"/>
Run Code Online (Sandbox Code Playgroud)

这就是我在项目中格式化数字的方式.您可以使用它<s:if>来达到您的要求.


And*_*ios 3

\n

Question1: 我想知道 \xe2\x80\x98 #\xe2\x80\x99 和 \' 0\' 是什么意思?\n 0.00, #0.00, ##.00,###0.00谁能告诉我它们之间的区别?谢谢!

\n
\n\n
    \n
  • 0表示必须打印一个数字,无论它是否存在
  • \n
  • #表示如果存在数字则必须打印,否则省略。
  • \n
\n\n

例子:

\n\n
    System.out.println("Assuming US Locale: " + \n                             "\',\' as thousand separator, " + \n                             "\'.\' as decimal separator   ");\n\n    NumberFormat nf = new DecimalFormat("#,##0.0##");\n    System.out.println("\\n==============================");\n    System.out.println("With Format (#,##0.0##) ");\n    System.out.println("------------------------------");\n    System.out.println("1234.0 = " + nf.format(1234.0));\n    System.out.println("123.4  = " + nf.format(123.4));\n    System.out.println("12.34  = " + nf.format(12.34));\n    System.out.println("1.234  = " + nf.format(1.234));\n    System.out.println("==============================");\n\n    nf = new DecimalFormat("#,000.000");\n    System.out.println("\\n==============================");\n    System.out.println("With Format (#,000.000) ");\n    System.out.println("------------------------------");\n    System.out.println("1234.0 = " + nf.format(1234.0));\n    System.out.println("123.4  = " + nf.format(123.4));\n    System.out.println("12.34  = " + nf.format(12.34));\n    System.out.println("1.234  = " + nf.format(1.234));\n    System.out.println("==============================");\n
Run Code Online (Sandbox Code Playgroud)\n\n

Running Example

\n\n

输出:

\n\n
\n
Assuming US Locale: \',\' as thousand separator, \'.\' as decimal separator)\n\n==============================\nWith Format (#,##0.0##) \n------------------------------\n1234.0 = 1,234.0\n123.4  = 123.4\n12.34  = 12.34\n1.234  = 1.234\n==============================\n\n==============================\nWith Format (#,000.000) \n------------------------------\n1234.0 = 1,234.000\n123.4  = 123.400\n12.34  = 012.340\n1.234  = 001.234\n==============================\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

getText()在 Struts2 中,您可以使用中的函数应用这种格式ActionSupport

\n\n

PS:问题2和3很琐碎(而且很混乱)。

\n