Kullanıcıların öğeleri diledikleri gibi sabitleyebileceği ve kaldırabileceği dinamik bir gösterge panosuyla çalışıyorum. Şimdi varolan kompozit bileşenini destekleyici fasulye görünümüne eklemek istediğim bir sorunum var. Bunu internetten yapmanın doğru yolunu bulmaya çalıştım ama şimdiye kadar başarı yok. İşte Programlama yoluyla destekleyici içinde bileşik bileşen oluşturun ve ekleyin
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:composite="http://java.sun.com/jsf/composite">
<!-- INTERFACE -->
<cc:interface>
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<h:outputText value="TEST"/>
</cc:implementation>
</html>
kompozit bileşeni dönmelidir kodu:
Column column = new Column();
UIComponent test = HtmlUtil.getCompositeComponent("test.xhtml", "comp");
column.getChildren().add(test);
: Burada
public static UIComponent getCompositeComponent(String xhtml, String namespace) {
FacesContext fc = FacesContext.getCurrentInstance();
Application app = fc.getApplication();
Resource componentResource = app.getResourceHandler().createResource(xhtml, namespace);
UIPanel facet = (UIPanel) app.createComponent(UIPanel.COMPONENT_TYPE);
facet.setRendererType("javax.faces.Group");
UIComponent composite = app.createComponent(fc, componentResource);
composite.getFacets().put(UIComponent.COMPOSITE_FACET_NAME, facet);
return composite;
}
Ve işlevi kullanıyorum nasıl edilir Burada eklemek istediğiniz basit kompozit bileşenidir
Sütunun içinde hiçbir şey işlenmiyor. Bunun nasıl yapılabileceği hakkında bir fikrin var mı? Benim kullanım durumumda uymuyor çünkü rendered = "# {bean.isThisRendered}" yol gitmek istemiyorum.
ilgi (konu korkunç kötü kaplıdır ve bu beni ileriye ışık yılı getirecek) Out şu şekildedir:
Yani, özel örnekte, kullanmak HtmlUtil.getCompositeComponent'ı çağıran 3-liner? –