Ответ 1
Сообщается об ошибке для JSF 2.2. Я некоторое время занимался тем же вопросом.
https://java.net/jira/browse/JAVASERVERFACES-2803
Вы также можете остаться в стороне от f:viewActions
.
После обновления с 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 (Build 201306052037)Java
: 1.7.0_25; Java HotSpot (TM) Клиент VM 23.25-b01Runtime
: среда выполнения Java (TM) SE 1.7.0_25-b16Java EE
: Java EE 7 WebJSF implementation
: Mojarra 2.2.0Glassfish
: 4.0 build 89Сообщается об ошибке для JSF 2.2. Я некоторое время занимался тем же вопросом.
https://java.net/jira/browse/JAVASERVERFACES-2803
Вы также можете остаться в стороне от f:viewActions
.
Я использовал точно такую же конфигурацию (Glassfish, Mojarra 2.2.0) и выяснил, что могу обойти сообщение об ошибке, если я использую только один дочерний элемент в теге метаданных и помещаю его вне его.
<f:event type="preRenderView" listener="#{bean.listener()}"/>
<f:metadata>
<f:viewParam name="par1" value="#{bean.val1}" />
</f:metadata>
Проблема возникает снова, если вы используете два viewParams, см. https://java.net/jira/browse/JAVASERVERFACES-3080
Обновление до последней версии Mojarra (2.2.6 на данный момент) решило проблему для меня.