Estou tentando criar um componente que recebe o nome de uma entidade, uma lista com os atributos desta entidade e os labels e cria um formulário. Mas estou tendo problemas com o binding do inputText.
Aparece esta mensagem:
10:00:45,687 INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id77:j_id79:j_id82[severity=(ERROR 2), summary=(/WEB-INF/componentes/pesquisa.xhtml @59,74 value="#{funcoes:evalEl(funcoes:concat(_entidade,'.',_atributos[i]))}": Illegal Syntax for Set Operation), detail=(/WEB-INF/componentes/teste.xhtml @59,74 value="#{funcoes:evalEl(funcoes:concat(_entidade,'.',_atributos[i]))}": Illegal Syntax for Set Operation)]
sourceId=j_id77:j_id79:j_id84[severity=(ERROR 2), summary=(/WEB-INF/componentes/teste.xhtml @59,74 value="#{funcoes:evalEl(funcoes:concat(_entidade,'.',_atributos[i]))}": Illegal Syntax for Set Operation), detail=(/WEB-INF/componentes/teste.xhtml @59,74 value="#{funcoes:evalEl(funcoes:concat(_entidade,'.',_atributos[i]))}": Illegal Syntax for Set Operation)]
O código é este:
<ui:param name="_entidade" value="#{nomeEntidade}" />
<ui:param name="_id" value="#{id}" />
<ui:param name="_atributosStr" value="#{atributosEntidades}" />
<ui:param name="_atributos"
value="#{funcoes:strToList(atributosEntidades)}" />
<ui:param name="_labelsStr" value="#{labels}" />
<ui:param name="_labels" value="#{funcoes:strToList(_labelsStr)}" />
<ui:param name="_entityQuery" value="unidadeFornecimentoEntityQuery" />
<rich:panel header="#{messages['ui.pesquisar']}">
<h:form>
<h:panelGrid columns="2">
<c:forEach var="i" begin="0"
end="#{funcoes:size(funcoes:strToList(_labels))-1}">
<h:outputText value="#{_labels[i]}" />
<h:inputText
value="#{funcoes:evalEl(funcoes:concat(_entidade,'.',_atributos[i]))}" />
</c:forEach>
<br />
<h:commandButton action="acao"
value="acao" />
</h:panelGrid>
</h:form>
</rich:panel>
strToList quebra uma string colocando os pedaços em uma lista, evalEl é uma função para avaliar o valor da expressao e concat é uma funcao para concatenar