【问题标题】:Rendering html using Struts2使用 Struts2 渲染 html
【发布时间】:2012-10-16 15:51:22
【问题描述】:

使用 Struts2,我的目标是使用 Struts2 迭代器向用户呈现一个简单的博客,例如:

最近的话题

  • 响应 1
  • 响应 2
  • ...

上一个主题

  • 响应 1
  • 响应 2
  • ...

用户使用单独的表单生成和提交每个主题/响应,但是一旦提交,我不希望他们编辑博客。

为了生成主题或响应,我提供了一个编辑器(就像我现在使用的 stackoverflow 编辑器),它可以生成 html 格式的文本,包括用户的任何样式(粗体、下划线、列表等)选择。用户创建的 Topic/Response 的文本,包括 html 标签,存储在数据库中。

但是,我找不到在博客中将主题/响应呈现为 html 的方法。例如,编辑器中加粗的 text 在 struts2 s:textarea 标记中显示为 <strong>text</strong>

我知道 s:property 标签有一个 'escapeHtml' 属性可以防止这种情况发生,但是 s:property 标签不能正确布局文本,而且似乎只有 s:property 标签有这个属性。

我尝试在迭代器中使用 <input value="%{#topic.content}" /> 而不是 s:textarea,但它似乎无法识别 #topic 迭代引用。

有没有办法做到这一点?

【问题讨论】:

    标签: struts2


    【解决方案1】:

    使用说明税区的文本。如果您仍然面临这个问题,请告诉我。

    【讨论】:

    • 这毫无意义;它仍然会显示 HTML 标记。
    【解决方案2】:

    使用 escapeHtml="false"。我自己试过了,它按预期工作。 例如:

    <s:set var="var1"><p>some stuff</p><p>other stuff</p></s:set>
    
    <s:property value="var1" escapeHtml="false" />
    

    按照您的预期呈现段落标签。

    【讨论】:

      【解决方案3】:

      如何将&lt;pre&gt;&lt;s:property&gt; 一起使用。

      关于html&lt;pre&gt;标签: http://www.w3schools.com/tags/tag_pre.asp

      【讨论】:

      • 我不明白你的建议,虽然我会研究
         与 s:property 标签的关联。
      猜你喜欢
      • 2014-02-09
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多