我在我的java bean中使用\n,并且控制台中的变量输出正确显示.虽然从bean获取此值到JSF \n似乎不起作用.......任何人都可以建议我如何使用JSF中的工作.
Bal*_*usC 17
最简单的方法是white-space: pre在包含您要保留换行符的文本的父元素上应用CSS \n.鉴于此CSS样式类:
.preformatted {
white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)
你可以按如下方式申请:
<div class="preformatted">#{bean.text}</div>
Run Code Online (Sandbox Code Playgroud)
要么
<h:panelGroup layout="block" styleClass="preformatted">#{bean.text}</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)
要么
<h:outputText value="#{bean.text}" styleClass="preformatted" />
Run Code Online (Sandbox Code Playgroud)
等等
顺便说一下,这个样式属性也正是<textarea>默认使用的元素.您也可以通过设置disabled="true"或使用它并使其无法编辑readonly="true".
<h:inputTextarea value="#{bean.text}" disabled="true" />
Run Code Online (Sandbox Code Playgroud)
您当然也可以用\nHTML <br/>元素替换所有出现的内容.这样,您可以将其显示在不使用white-space: pre和/或不是<textarea>元素的元素中.其中一种方法是使用fn:replace().
<h:outputText value="#{fn:replace(bean.text,'\\n','<br/>')}" escape="false" />
Run Code Online (Sandbox Code Playgroud)
这只是IMO比这更丑陋white-space: pre.
<br/>在将值发送给您之前,您应该替换所有\n <h:inputTextarea>.
Html用于<br/>换行,而不是像\ java一样.
此外,你应该添加escape="false"到你的<h:outputText(几乎肯定...).