Ae galera tudo bem
Estou com o seguinte problema, queria fazer um link dinamico, a partir do valor do combo.
dependendo do que o usuario selecionar no combo redirecionar para uma outra action
Segue o codigo abaixo
<h:selectOneMenu value="#{parametroControleEntity.id.tipoPeriodo}">
<f:selectItem itemValue="" itemLabel="" selected="true"/>
<f:selectItem itemValue="O" itemLabel="Observações Acessória" />
<f:selectItem itemValue="P" itemLabel="Processo" />
<f:selectItem itemValue="A" itemLabel="Atividade" />
</h:selectOneMenu>
<h:graphicImage id="imgLink" value="resource://br/com/resentation/resources/images/search16x16.png">
<a4j:support id="processoLink" event="onclick" action="#{ACTION DINAMICA AQUI}"/>
</h:graphicImage>
opa…
é bem sussa fazer isso ai…
em um managed bean, cria um atributo e seu get e set:
private HtmlInputHidden page;
ai vc cria um metodo mais ou menos assim:
public void novoItem(){
try{
if(page.getValue().equals("cadastraProc")){
this.modalAbrir = FacesUtil.getProcedureHandler().novaProcedure();
}else if(page.getValue().equals("cadastraProc2")){
this.modalAbrir = FacesUtil.getProcedureHandler().novaProcedure2();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
esse getProcedureHandler é um metodo de uma classe auxiliar aki, serve para pegar um mbean…assim dessa forma vc deixa a implmeentação correta no mbean correspondente, sem misturar, fica mais ou menos assim:
public static ProcedureHandler getProcedureHandler(){
FacesContext fc = FacesContext.getCurrentInstance();
ELContext elContext = fc.getELContext();
ELResolver resolver = fc.getApplication().getELResolver();
Object element = resolver.getValue(elContext, null, "procedureJob");
return (ProcedureHandler) element;
}
ai no seu jsp vc coloca dentro de um form
<h:inputHidden value="cadastraProc" binding="#{topHandler.page}"/>
onde topHandler é o mbean ai que tem o atributo…
e no botao vc chama a action q vc criou…
[edit] nao tinha visto que vc ta usando um combo…no caso em vez de criar um hidden, vc cria uma String msm…eai vc usa para comparar no seu metodo e cair na chamada dinamicamente…ai é só colocar essa String no value do combo…
flw…abraços