Как получить доступ к родительскому компоненту из файла тегов Facelet в JSF 1.2
Я пишу файл тега Facelet в JSF 1.2. Я хочу иметь возможность ссылаться на родительский контейнер. В JSF 2.0 я мог бы сделать это составным компонентом и использовать #{cc.parent}
, Но есть ли JSF 1.2-эквивалентный способ сделать это?
taglib.xml
<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://company.com/jsf</namespace>
<tag>
<tag-name>parentid</tag-name>
<source>../components/parentid.xhtml</source>
</tag>
</facelet-taglib>
parentid.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets">
<!-- The next line is the line that isn't working for me -->
<h:outputText binding="#{obj}" value="Parent id is: #{obj.parent.id}" />
</ui:composition>
testpage.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:test="http://company.com/jsf"
xmlns:ui="http://java.sun.com/jsf/facelets">
...
<a:form id="form1">
<test:parentid />
</a:form>
<a:form id="form2">
<test:parentid />
</a:form>
...
</ui:composition>
Я отредактировал это, чтобы включить информацию из ссылки BalusC, и я почти там.
В примере это работает отлично, если есть только form1. Но добавив form2, я получаю вывод:
Parent id is: form2
Parent id is: form2
Что я хочу это:
Parent id is: form1
Parent id is: form2
Таким образом, связывание в композиции перезаписывается каким-либо последним связыванием. Я пытался использовать карту и привязываться к ней, но это не сработало. Как я мог решить это?