左开括号会弄乱我的字符串缓冲区

时间:2011-02-14 16:19:40

标签: java jstl

我有一个字符串缓冲区然后放入bean并使用JSTL调用网页。我希望它输出像10/10/1987 (23 years)这样的东西。第一个例子没有返回任何内容,第二个例子没有。

patAge.append(" ")
      .append("(")
      .append(patientDetails.getAge())
      .append(" ")
      .append(bpt.get("BPT_YRS"))
      .append(")");

输出:10/10/1987

patAge.append(" ")
      .append("{")
      .append(patientDetails.getAge())
      .append(" ")
      .append(bpt.get("BPT_YRS"))
      .append(")");

输出:10/10/1987 {23 years)

patAge.append(" ")
      .append(patientDetails.getAge())
      .append(" ")
      .append(bpt.get("BPT_YRS"))
      .append(")");

输出:10/10/1987 23 years)

似乎左括号会导致它不起作用。

2 个答案:

答案 0 :(得分:2)

对于可读代码,我建议切换到MessageFormat

这是默认示例:

Object[] arguments = {
         new Integer(7),
         new Date(System.currentTimeMillis()),
         "a disturbance in the Force"
     };

String result = MessageFormat.format(
         "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
         arguments);

输出:2053年7月3日下午12:30,部队7号行动受到干扰。

因此,您将变量与消息分开。

答案 1 :(得分:1)

看起来你的第一句话中存在语法错误: append((")(2.追加)看起来很奇怪。

我认为应该是:append("(")(还有一个"