我已经定义了这个:
<ui:define name="content">
<section id="documents">
....
<h:message for="documents" errorClass="errorc" />
</section>
这位于上方模板中的<body><main>
标记内。
然后我的控制器执行此操作:
} catch (MyException e) {
ctx.addMessage("documents", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Trying to raise an error", null));
}
但h:message
中未显示错误。我假设我错误地使用了目标ID,但我不知道该怎么做。我试图将h:message
移到该部分之外,但也无法工作。
答案 0 :(得分:1)
来自<h:message>
documentation(强调我的):
for
要显示消息的组件的客户端标识符。
<section>
标记是纯HTML元素,而不是JSF组件。
使用例如允许JSF生成<h:panelGroup layout="block">
元素的<div>
组件。
<h:panelGroup layout="block id="documents">
<h:message for="documents" ... />
</h:panelGroup>
或创建生成<section>
的自定义组件。