StringBuffer - > HTML

时间:2014-10-07 18:54:41

标签: java html hibernate

我正在使用StringBuffer,这是一个在hibernate应用程序中构建的前一个开发人员,并在一些.append()方法中找到了一些有趣的东西

sb.append("<td style=\"padding-left:5px\">~BFE~").append(MyField).append("~AFT~</td>");

这似乎只会添加到包含任何给定表的主键的每个<td>

这可能是一件简单的事情,因为没有写任何评论,我很想念它,但这里究竟发生了什么?我假设一些事情&amp;在那之后与HTML有关。

1 个答案:

答案 0 :(得分:3)

嗯,对于您发布的代码:

sb.append("<td style=\"padding-left:5px\">~BFE~").append(MyField).append("~AFT~</td>");

如果&#39; MyField&#39;属性是&#39; 1234&#39;然后将打印出以下html:

<td style="padding-left:5px">~BFE~1234~AFT~</td>

就是这样。

为什么之前的开发人员使用BFE或AFT(除了之前/之后,请参阅Logan Murphy的评论),谁知道。也许有一些东西正在解析html表并寻找BFE / AFT来查找MyValue值?

旁注:

整个StringBuffer与StringBuilder的讨论只是一点噪音。到目前为止,StringBuilder是构建字符串的首选方法(参见Peter Lawrey关于StringBuffer和StringBuilder的评论)。但即便如此,在这个场景背后,Java会将串行串联连接调用流化为使用StringBuilder。

...含义

String html = "<td style=\"padding-left:5px\">~BFE~") + MyField +"~AFT~</td>"

与......相同。

StringBuilder sb = new StringBuilder();
sb.append("<td style=\"padding-left:5px\">~BFE~").append(MyField).append("~AFT~</td>");
String html = sb.toString();