我正在试图找到一种方法来获取h:消息以显示它周围的JQuery UI高亮框。但是把它放在f:verbatim标签上就不会渲染了。如果我尝试将其分成2个f:围绕HTML的逐字标签,我会得到:
javax.servlet.ServletException:Error Parsing /index.xhtml:Error Traced [line:25]元素类型“p”必须由匹配的结束标记“
”终止。
<f:verbatim rendered="#{uploadBean.hasMessage}">
<div class="ui-widget">
<div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
<p>
<span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
**<h:messages />**
</p>
</div>
</div>
</f:verbatim>
答案 0 :(得分:3)
不要使用<f:verbatim>
来呈现包含JSF组件的partials。那里不是。 <f:verbatim>
是旧的和黑暗的JSF 1.0 / 1.1时代的遗留物,因为无法在JSF页面中内联纯HTML标记。此外,自JSF 2.0以来<f:verbatim>
已弃用。
改为使用<h:panelGroup>
。
<h:panelGroup rendered="#{uploadBean.hasMessage}">
...
</h:panelGroup>
在查找JSF 2.x资源/答案时,请确保您正在阅读JSF 2.x目标资源,而不是JSF 1.x目标资源。这个变化太大了,JSF 2.x中的很多东西都做得与JSF 1.x不同/更好。