Pouts… ótima idéia, eu quase resolvi o problema, agora tô penando no código :lol:
O problema agora é o seguinte:
Eu criei a classe
public class LinkText {
private UIComponent component;
public boolean isCommand() {
return (component instanceof UICommand);
}
public boolean isText() {
return component instanceof UIOutput;
}
public UIComponent getComponent() {
return component;
}
public void setComponent(UIComponent component) {
this.component = component;
}
}
e no backing bean usei esse código:
public PlanejamentoAA() {
componentes = new ArrayList<LinkText>();
LinkText componente1 = new LinkText();
LinkText componente2 = new LinkText();
UICommand command = new UICommand();
UIOutput output = new UIOutput();
command.setValue(new String("Modulo 1"));
output.setValue(new String("Modulo 2"));
componente1.setComponent(command);
componentes.add(componente1);
componente2.setComponent(output);
componentes.add(componente2);
}
...
public List<LinkText> getComponentes() {
return componentes ;
}
O code snippet da página:
<h:dataTable value="#{PlanejamentoAA.componentes}" var="componente">
<h:column>
<h:commandLink rendered="#{componente.command}" value="#{componente.component.value}"/>
<h:outputText rendered="#{componente.text}" value="#{componente.component.value}"/>
</h:column>
</h:dataTable>
Mas tive uns problemas, utilizando uma pequena variação disso que descrevi acima:
Quando uso o binding ao invés do value (o que realmente quero), recebo o erro
javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.el.JspPropertyNotFoundException: /teste.jsp(17,3) '#{componente.component}' Target Unreachable, identifier 'componente' resolved to null
Como pode ser visto, ao usar o value não há problemas… logo, componente não é null.
Vcs tem idéia do que pode estar acontecendo?
Obrigado!