Когда я создаю составной компонент с фасетом в нем и помещаю ссылку на команду в этот фасет, я получаю сообщение об ошибке: This link is disabled as it is not nested within a JSF form.
CommandButton ведет себя не так, так что я склоняюсь к тому, что это баг.
index.xhtml:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:mycomp="http://xmlns.jcp.org/jsf/composite/mycomp"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
</h:head>
<h:body>
<mycomp:component>
<f:facet name="someFacet">
<h:commandLink value="this link should work, but does not (within form, within facet)"/><br/>
<h:commandButton value="this button works as expected (within form, within facet)"/><br/>
</f:facet>
</mycomp:component>
</h:body>
</html>
/resources/mycomp/component.xhtml:
<?xml version='1.0' encoding='UTF-8' ?>
<ui:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:cc="http://xmlns.jcp.org/jsf/composite"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
>
<cc:interface>
<cc:facet name="someFacet" required="true"/>
</cc:interface>
<cc:implementation>
<h:commandLink value="this link should not work (not in a form)"/><br/>
<h:form>
<h:commandLink value="this link works as expected (within form, but not in facet)"/><br/>
<cc:renderFacet name="someFacet"/>
</h:form>
</cc:implementation>
</ui:component>
Вот что делает мой браузер:
Любые идеи относительно того, что я могу делать неправильно, или это действительно ошибка в Mojarra 2.2.7? (который поставлялся в комплекте с NetBeans 8.0.2)
form
не принимает фасет с именемsomeFacet
, поэтому поведение не определено. Я не уверен, хотя, поэтому я не буду публиковать ответ. - person DavidS   schedule 13.08.2015h:form
, а этот компонент принимает фасет под названиемsomeFacet
: предположительно дополнительный контент для формы. - person user207421   schedule 14.08.2015commandLink
для построения структуры меню. HTML-код, который необходимо отобразить, уже определен, так что обойти два набора невозможно. - person Leo Mekenkamp   schedule 16.08.2015