代码之家  ›  专栏  ›  技术社区  ›  Balázs Németh

JSF Ajaxstatustag如何以编程方式添加

  •  0
  • Balázs Németh  · 技术社区  · 15 年前

    我努力尝试过,但是我无法在我的页面中插入一个简单的richfaces-ajaxstatustag。我从Java代码生成组件,而不是XHTML。我就是这么做的:

        AjaxStatusTag deleteStatus = new AjaxStatusTag();
        FacetTag start = new FacetTag();
        start.setName("start");
        HtmlGraphicImage pic = new HtmlGraphicImage();
        pic.setUrl("/resources/images/ajaxLoaderLong.gif");
        pic.setAlt("ajaxLoaderLong.gif");
        start.setValue("start", pic); //how to add pic to FacetTag?
        start.setParent(deleteStatus);
    

    我也不确定Facettag是什么…其他情况下,例如使用带有链接的简单DIV,很容易得到DIV的子级,然后将链接添加到集合中,但是AjaxStatusTag和Facettag是不同的,我不知道如何解决这个问题。

    感谢您的帮助!

    干杯, 巴尔兹

    1 回复  |  直到 15 年前
        1
  •  0
  •   Balázs Németh    15 年前

    好吧,所以我解决了。我是这样做的:

    private static void renderAjaxStatus(UIComponent holderRegion, HtmlAjaxCommandLink ajaxLink, String statusID) {
    
            UIComponent status = FacesContext.getCurrentInstance().getApplication().createComponent(HtmlAjaxStatus.COMPONENT_TYPE);
            status.setId(STATUS_ID + statusID);
            HtmlPanelGroup panelGroup = (HtmlPanelGroup) FacesContext.getCurrentInstance().getApplication().createComponent(HtmlPanelGroup.COMPONENT_TYPE);
    
            Div div = new Div();
            div.setStyleClass(STATUS_COVER);
    
            HtmlGraphicImage pic = new HtmlGraphicImage();
            pic.setUrl(RESOURCES_IMAGES_AJAX_LOADER_GIF);
            pic.setAlt(STATUS_ID);
            pic.setStyleClass(STATUS_PIC_STYLECLASS);
    
            panelGroup.setStyleClass(STATUS_PANEL_STYLECLASS);
            panelGroup.getChildren().add(div);
            panelGroup.getChildren().add(pic);
    
            deleteStatus.getFacets().put("start", panelGroup);
            holderRegion.getChildren().add(status);
    
            ajaxLink.setStatus(STATUS_ID + statusID);
    }
    

    干杯, 巴尔兹

    推荐文章