【问题标题】:Building HTML using code使用代码构建 HTML
【发布时间】:2012-12-12 01:00:15
【问题描述】:

我在这里有一个员工记录,我需要让 if 通过一个函数,该函数会吐出用 HTML 标记很好地格式化的员工记录。

例子

staff id = 23422
first name = Herbert
surname = Dominos
department = Purchasing

函数输出类似于

<label>staff id</label><div class="some class">23422</div>
<label>First namelabel><div class="some class">Herbert</div>
<label>Surname</label><div class="some class">Dominos</div>
<label>Department</label><div class="some class">Purchasing</div>

似乎只是通过 string 或 stringbuilder 连接它们不是正确的方法。

有什么建议吗?谢谢:)

【问题讨论】:

  • 连接字符串有什么问题。我看不出有什么真正的问题。如果问题是 'class="some class"' 中的引号,您可以通过键入 \" 来转义它们。
  • “通过字符串或字符串构建器连接它们” 如果您的意思是StringStringBuilder,那么绝对不会第一个。至于是否最好使用StringBuilder 而不是其他许多生成 HTML 的方式,例如JSP 或 servlet,jsoup.. - 那是另一回事。我用“手角色”方法来做简单的 HTML 结构,比如表格的单元格和行。
  • 如果很多输出保持不变并且很少有地方会被 Java 填充......一个很好的替代和更复杂的方法是使用“FreeMarker”......你描述的用例......这可能是一个矫枉过正
  • &lt;label&gt;First namelabel&gt; 中可以看到一个很好的反对手动编码字符串的例子,它应该是&lt;label&gt;First name&lt;/label&gt; ;)
  • @AndrewThompson 不正确,在 java 6 之后使用哪个都没有关系。

标签: java html string stringbuilder


【解决方案1】:

也许Java Anti-Template Language (JATL) 对你有用。它使用流畅的 API 语法进行编码。

【讨论】:

    【解决方案2】:

    我会使用 apache velocity 来实现这一点。

    示例:

    #foreach($staffInfo in $staffList.iterator())
    <label>$staffInfo.getStaffId()</label>
    #end
    

    您可以尝试类似的方法来构建您的 html 代码。

    【讨论】:

    • 是的,看来 Texen 可能会这样做。您指的是哪个速度子项目?
    • 是的,Texen 会在这里为您提供帮助。我通常使用引擎本身。但 Texen 将是您的情况所需要的全部。
    【解决方案3】:

    我会做这样的事情

    <label>staff id </label><div class="some class">#staff id#</div>
    <label>First namelabel><div class="some class">#First namelabel#</div>
    <label>Surname</label><div class="some class">#Surname#</div>
    <label>Department</label><div class="some class">#Department#</div>
    

    然后我将使用替换功能将例如#Staff id# 替换为 23422。

    快速、肮脏、简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多