Erro ao executar action="#{bean}"

Olá amigos

estou tentando executar isto:

<p:commandButton action="#{bean}" id="simAction1" value="Sim"
	ajax="false" process="@this" style="margin-right: 8px"
	icon="botaoSim" oncomplete="PF('cd').hide()">
</p:commandButton>

dá o seguinte erro:

ADVERTÊNCIA: #{bean}: javax.el.ELException: /confirm.xhtml @33,50 action="#{bean}": Identity 'bean' does not reference a MethodExpression instance, returned type: java.lang.String
javax.faces.FacesException: #{bean}: javax.el.ELException: /confirm.xhtml @33,50 action="#{bean}": Identity 'bean' does not reference a MethodExpression instance, returned type: java.lang.String

o parâmetro #{bean} vem deste xhtml:

			<ui:include src="confirm.xhtml" >
			  <ui:param name="header"     value="#{cadastrarApreensaoForm.header}"/>
			  <ui:param name="message"    value="#{cadastrarApreensaoForm.message}"/>
			  <ui:param name="bean"       value="#{cadastrarApreensaoForm.bean}"/>
			  <ui:param name="acao"       value="#{cadastrarApreensaoForm.action}"/>
			</ui:include> 

que configuro no form:

	public String setarSalvarApreensao() throws IOException {
		this.setHeader("Salvar Apreensão");
		this.setMessage("Deseja salvar esta apreensão...");
		this.setBean("#{cadastrarApreensaoForm.salvarApreensao}");
		this.setAction("salvarApreensao");
		RequestContext.getCurrentInstance().execute("PF('cd').show()");			
		return "cadastrarapreensao";		
	}	

Alguém poderia ajudar?

muito obrigado

Silvio Guedes

Olá Silvio, você deve invocar um método no action do seu botão.

Olá rafadelnero

bem estou tentando fazer um confirmDialog padrão para que todas as minhas aplicações possam usá-la.

Quando clico no botão salvar da página de cadastro ele executa isto no form:

	public String setarSalvarApreensao() throws IOException {
		this.setHeader("Salvar Apreensão");
		this.setMessage("Deseja salvar esta apreensão...");
		this.setBean("#{cadastrarApreensaoForm.salvarApreensao}");
		this.setAction("salvarApreensao");
		RequestContext.getCurrentInstance().execute("PF('cd').show()");			
		return "cadastrarapreensao";		
	}	

depois ele executa o

confirmDialog .execute("PF('cd').show()"); 

que está está em outra página (confirm,xhtml) . Esta página está incluída na página de cadastro:

			<ui:include src="confirm.xhtml" >
			  <ui:param name="header"     value="#{cadastrarApreensaoForm.header}"/>
			  <ui:param name="message"    value="#{cadastrarApreensaoForm.message}"/>
			  <ui:param name="bean"       value="#{cadastrarApreensaoForm.bean}"/>
			  <ui:param name="action"     value="#{cadastrarApreensaoForm.action}"/>
			</ui:include>

Então a página confirm.xhtml tem os botões Sim e Não.

			<p:commandButton action="#{bean[action]}" id="simAction" value="Sim"
				ajax="false" process="@this" style="margin-right: 8px"
				icon="botaoSim" oncomplete="PF('cd').hide()">
			</p:commandButton>

se eu clicar Sim ele deveria executar a ação que vem do form passada como parâmetro: action="#{bean[action]}"

		this.setBean("#{cadastrarApreensaoForm.salvarApreensao}");
		this.setAction("salvarApreensao");

muito obrigado

Silvio Guedes