为jspf页面提供默认的adf和jsf css样式,以在内联框架内正确呈现它

时间:2013-03-20 07:38:10

标签: jsf-2 oracle-adf

我在jsf页面上使用内联框架来渲染不同的jsff页面,这些页面被各种commandMenuItem所覆盖,但是页面没有正确呈现它给出的消息

此XML文件似乎没有与之关联的任何样式信息。文档树如下所示。

并将页面内容显示为

如何克服此问题并在内联框架内正确显示页面。我希望当我们在不同的窗口中分别运行jsff页面时,页面将在内联框架中显示类似的内容。

2 个答案:

答案 0 :(得分:2)

您不能使用内联框架引用jsff页面,您可以通过将jsff页面添加到任务流中并将任务流添加为区域来包含jsff页面,或者使用jsp:include标记

请查看本指南http://docs.oracle.com/cd/E23943_01/web.1111/b31973/af_reuse.htm#CACHFJDJ

答案 1 :(得分:0)

由于jsff页面不包含任何css和样式信息..因此它不会在内联框架内正确显示..但是我们可以在内联框架内显示完整的jsf页面..现在显示动态jsf在命令菜单上点击内联框架内的页面,从jsf页面点击...程序在下面..

  1. 首先创建一个jsf页面(比如说welcome.jsf)..将commanMenuItem添加到它...
  2. 创建其他2个jsf页面,其中包含任何内容。
  3. 在第一个jsf页面(welcome.jsf)中提到commandMenuItem的id与创建的2个不同页面相同。 commandMenuItem 1 id =“first”和commandMenuItem2 id =“second”,其他2个不同页面的名称必须与第一个和第二个相同。
  4. 现在在commandMenuItem上创建一个动作监听器bean

    import javax.faces.event.ActionEvent;

  5. 公共类PageBean {

    String page = "home";//setting default page
    
    public PageBean() {
    }
    
    public void getMenu(ActionEvent actionEvent) {
        // Add event code here...
    
        String id = actionEvent.getComponent().getId();
        System.out.println(" Menu ID : "+id);
        page = id;
        System.out.println("Value assigned to the page from the menu Id is :"+page);
    }
    
    public String getPage() {
        return page;
    }
    
    public void setPage(String page) {
        this.page = page;
    }
    

    }

    现在在secondCommandMeuItem上也注册了相同的actionListner bean

    包含菜单...的主页上的

    代码是

    <af:panelGroupLayout id="pgl1">
    <af:menuBar id="mb1">
    <af:menu text="menu 1" id="m1">
    <af:commandMenuItem text="commandMenuItem 1" id="page1" actionListener="#{PageBean.getMenu}">
                    <a4j:support event="onclick" reRender="if1"/>
                </af:commandMenuItem>
            </af:menu>
            <af:menu text="menu 2" id="m2">
                <af:commandMenuItem text="commandMenuItem 2" id="page2" actionListener="#{PageBean.getMenu}">
                    <a4j:support event="onclick" reRender="if1"/>
                </af:commandMenuItem>
            </af:menu>
        </af:menuBar>
        <af:inlineFrame id="if1" source="#{PageBean.page}.jsf" shortDesc="areaMp" partialTriggers="page1 page2"/><!-- getting dynamic page source from the managed bean variable(page) by fetching the menu id which is similar to the corresponding page name
    also add the commandMenuId of the menu's in the partial trigger of the inline frame. -->
    </af:panelGroupLayout>
    

    您可以在内联框架中包含和显示jsf页面,并且可以在jsf页面上使用内联框架,甚至也可以在jsff(页面片段)上使用。