从 JSF 2.1 更新到 2.2 后,我开始收到以下错误消息:
The metadata component needs to be nested within a f:metadata tag. Suggestion: enclose the necessary components within <f:metadata>
代码看起来有点奇怪:
....
<ui:composition template="./resources/templates/template_base.xhtml">
<ui:define name="contentBody">
<h:outputStylesheet library="css/table" name="tableContent.css" />
<h:outputScript library="javascript" name="pagination.js" target="head" />
<p:growl id="messages" autoUpdate="true" />
<f:metadata>
<f:viewParam name="topicId" value="#{topicBean.topic.id}" />
<f:event type="preRenderView" listener="#{topicBean.init(true)}" />
</f:metadata>
</ui:define>
</ui:composition>
....
如果错误消息引用的元数据组件是 f:viewParam
或 f:event
,然后我确实将它/它们包含在 f:metadata
中.
关于我做错了什么的想法?如果我设置 javax.faces.PROJECT_STAGE
则不会显示错误至 Production
, 但我想将其保留在 Development
中直到我完成。
Edit1 - 版本:
-
Netbeans
: 7.3.1(内部版本 201306052037) -
Java
: 1.7.0_25; Java HotSpot(TM) 客户端虚拟机 23.25-b01 -
Runtime
: Java(TM) SE 运行时环境 1.7.0_25-b16 -
Java EE
: Java EE 7 网络 -
JSF implementation
: 莫哈拉 2.2.0 -
Glassfish
: 4.0 构建 89
最佳答案
针对 JSF 2.2 报告的错误。不久前我正在处理同样的问题。
https://java.net/jira/browse/JAVASERVERFACES-2803
您可能还想远离 f:viewActions
。
关于jsf - 错误提示我需要使用 f :metadata even though I do,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315274/