将p放在span内或强制h:outputText在文本周围生成div

问题描述 投票:2回答:1

在我的项目中,我从用户那里获取原始文本并将其发送到服务器以执行以下操作

  • 确定每个单词的类型

  • [使用相关CSS类在其周围添加span

  • 保留原始文本结构(即 \r\n表示段落结尾,因此我可以将其包装在p中]]]

  • 将结果显示给用户

  • 使用

<h:outputText value="#{wordTypeBean.wordTypeValues}" escape="false" />

简而言之,我正在服务器端进行所有html标记。 return结果是这样的(当然是长字符串,结果以可读性为准):

<span> <!-- from h:outputText -->
  <p> <!-- the returned String coming from the Bean starts here -->
    <span class="interjection">Hello</span>
    <span class="noun">World</span>
    !
  </p>
  <p>
    <span class="noun">Life</span>
    <span class="verb">is</span>
    <span class="adjective">beautiful</span>
    .
  </p> <!-- the returned String coming from the Bean ends here -->
</span> <!-- from h:outputText -->

但是h:outputText在文本周围生成span元素。到目前为止,尽管我没有发现任何问题。但是,我有一种不正确的感觉,因为我在html中读到将p放在span内是非法的。

是否有任何方法可以迫使h:outputText围绕来自Bean的文本生成div,或者是否有合法/更好的方法来完成此操作?

以下是Chrome的DevTool的元素标签中的片段:Chrome DevTools screenshot

[在我的项目中,我从用户那里获取原始文本,然后将其发送到服务器,以执行以下操作来确定每个单词的类型,并使用相关的CSS类在其周围添加一个跨度,以保持原始文本结构(即...

html jsf
1个回答
6
投票

此,

© www.soinside.com 2019 - 2024. All rights reserved.