Jas*_*ler 6 jsf facelets parent tagfile jsf-1.2
我正在JSF 1.2中编写Facelet标记文件.我希望能够引用父容器.在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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
我编辑了这个以包含来自BalusC链接的信息,我几乎就在那里.
在示例中,如果只有form1,它将完美地工作.但是添加form2,这是我得到的输出:
Parent id is: form2
Parent id is: form2
Run Code Online (Sandbox Code Playgroud)
我想要的是:
Parent id is: form1
Parent id is: form2
Run Code Online (Sandbox Code Playgroud)
因此,组合中的绑定会被最后一个绑定所覆盖.我试图使用地图并绑定到那个,但那不起作用.我该怎么解决这个问题?
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |