显示h:消息的JSF 2.0错误

时间:2012-03-20 20:16:41

标签: java jsf jsf-2

我正在试图找到一种方法来获取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>

1 个答案:

答案 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不同/更好。

另见: