Jsf 2 Can';t在依赖ui:params的ui:include页面上使用复合组件
我有一个使用ui:include包含另一个页面的基本页面。ui:include使用ui:param将参数传递给包含的页面。参数在包含页控制器的PostConstruct方法中读取 在我将复合组件添加到基本页面之前,这种设计工作得很好;添加后,包含的页面控制器报告ui:param的值为null。一旦我从页面中删除了复合组件,ui:param就可以被包含页面的控制器读取(即不为null)。请帮忙Jsf 2 Can';t在依赖ui:params的ui:include页面上使用复合组件,jsf-2,Jsf 2,我有一个使用ui:include包含另一个页面的基本页面。ui:include使用ui:param将参数传递给包含的页面。参数在包含页控制器的PostConstruct方法中读取 在我将复合组件添加到基本页面之前,这种设计工作得很好;添加后,包含的页面控制器报告ui:param的值为null。一旦我从页面中删除了复合组件,ui:param就可以被包含页面的控制器读取(即不为null)。请帮忙 复制问题的文件: myPage.xhtml <html xmlns:ui="http://jav
复制问题的文件: myPage.xhtml
<html xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:mycomponents="http://java.sun.com/jsf/composite/mycomponents">
<ui:include src="includePage.xhtml">
<ui:param name="myParam" value="myValue"/>
</ui:include>
<p/>
<mycomponents:myComponent/>
</html>
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets">
The value of the param is: #{includedPageController.myParam}
</ui:composition>
请参阅:。在JSFAPI中没有做这类事情的标准。应使用复合或自定义组件,而不是include/param标记组合
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface/>
<composite:implementation>
I am the composite component
</composite:implementation>
</html>
@ManagedBean
public class IncludePageController
{
String myParam;
@PostConstruct
private void init()
{
FaceletContext faceletContext = (FaceletContext)FacesContext.getCurrentInstance().
getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
myParam = (String)faceletContext.getAttribute("myParam");
}
public String getMyParam()
{
return myParam;
}
public void setMyParam(String myParam)
{
this.myParam = myParam;
}
}