Tenho uma aplicação que utilizo JSF 2 e estou utilizando facelets.
Tenho as seguinte linhas na minha pagina de template
<div>
<h:form>
<ui:insert name="bt_crud" >
<h:commandButton styleClass="botoes" immediate="true" value="${a}" action="${b}"/>
</ui:insert>
</h:form>
</div>
e tenho o codigo abaixo na pagina que usa a template
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="/template/principalSec.xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>
.
.
<ui:param name="a" value="Pais" />
<ui:param name="b" value="sec_Pais" />
.
.
</ui:composition>
Porém, ao clicar no botão estou tendo o seguinte erro:
11/11/2011 14:20:02 com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
AVISO: ${b}: javax.el.ELException: /template/principalSec.xhtml @138,103 action="${b}": Identity 'b' does not reference a MethodExpression instance, returned type: java.lang.String
javax.faces.FacesException: ${b}: javax.el.ELException: /template/principalSec.xhtml @138,103 action="${b}": Identity 'b' does not reference a MethodExpression instance, returned type: java.lang.String
javax.servlet.ServletException: javax.el.ELException: /template/principalSec.xhtml @138,103 action="${b}": Identity 'b' does not reference a MethodExpression instance, returned type: java.lang.String
Quando tento fazer isso somente pro value ele funciona, mas se tento fazer pra action, ele da isso, alguem saberia explicar o pq?
Eu realmente estou usando name=“a” e name=“b” apenas para testar mesmo, tanto que quando utilizo o name=“a” no value, ele consegue trazer o valor passado pelo ui:param, porém o name=“b”, ele parece não reconhecer visto que ele é uma action
Nao consegui entender muito bem como usar o exemplo do ‘Igor Gabriel’, porém percebi que dentro da action dele, ele passa de uma maneira diferenteaction="#{actionBeanRelatorio[metodo]}Tentei usar o mesmo conceito dele e passei
tanto o MB quanto o nome do método estou passando por parâmetro depois pois esse template é usado em várias telas com diferentes MB aí passo o MB que está requisitando e o método que eu quero chamar, acho que compliquei demais a pro que você ta precisando, mas era só pra te dar uma idéia hehe.