<h:message for =“foo”>似乎不适用于<section id =“foo”>

时间:2016-07-04 11:33:53

标签: jsf message

我已经定义了这个:

   <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移到该部分之外,但也无法工作。

我只能使用general h:messages with null client ID

1 个答案:

答案 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>的自定义组件。