JSF mudar informações no XHTML

3 respostas Resolvido
jsfjavafront-end
M

Tenho uma aplicação em java/jsf estou com uma dificuldade em mostrar informações no XHTML, bem eu tenho um SelectOneMenu para salvar uma informação no banco:

<p:selectOneMenu id="PermissaoAcesso"
	value="#{usuarioManageBean.usuario.permissaoAcesso}" required="true"
	label="PermissaoAcesso">
	<f:selectItem itemLabel="Selecione" itemValue="" />
	<f:selectItems value="#{permissaoView.permissoes}" />
	<f:validateLength minimum="1" />
	<p:ajax event="change" update="displayEquipe1" process="@this" />
	<p:ajax event="change" update="displayEquipe2" process="@this" />
</p:selectOneMenu>

Ele puxa as informações de uma classe chamada PermissaoView:

@PostConstruct
	public void init() {
		permissoes = new HashMap<String, String>();
		permissoes.put("Supervisor", "1");
		permissoes.put("Atendente", "2");
		permissoes.put("Pronta Resposta", "3");
	}

Por causa de algumas regras de negocio ele salva no banco os valores 1, 2 e 3

Ok, ele salva no banco, quando eu puxo as informações em um dataTable é lógico que ele vai puxar as informações 1, 2 e 3. aqui esta a linha do código que puxa a informação no datatable é essa:

<p:column headerText="Permissão de Acesso"
		style="text-align: center">
		<h:outputText value="#{listausuario.permissaoAcesso}" />
</p:column>

como eu disse, ele mostra as informações que eu salvei, que no caso são 1, 2 e 3, agora minha dificuldade é no xhtml mudar esses dados para para os nomes de cada valor exemplo valor 1 no datatable mostrar Supervisor, vi em alguns lugares na net que eu posso usar Enum, mas não sei bem como ele funciona.

Alguém sabe como resolver?

3 Respostas

B

no seu selectOneMenu use apena um ajax separando por virgulas os componentes que vc precisa fazer o update exemplo:

<p:ajax event="change" update="displayEquipe1,displayEquipe2" process="@this" />

o ajax terá algum listener?

e o que vc precisa para exibir os resultados é um link q achei q pode te ajudar:

http://stackoverflow.com/questions/9074177/displaying-hashmap-keys-and-values-in-a-primefaces-datatable

D

Na lista “listausuario” , faz um for , e a cada objeto voce altera removendo os numeros , pode usar .replaceall, ou pode pegar com substring algo assim

M
Solucao aceita
Em um outro grupo consegui resolver, segue:

Na minha classe bem eu faço um switch case:

public String permissaoAcessoFormatada(){
   switch (permissaoAcesso) {
     case "1":
     return "Supervisor";
     case "2":
     return "Atendente";
     case "3":
     return "Pronta Resposta";
     default:
     return null;
   }
}

E no datatable fica assim:

<p:column headerText="Permissão de Acesso"
        style="text-align: center">
        <h:outputText value="#{listausuario.permissaoAcessoFormatada()}" />
</p:column>

Funcionou perfeitamente.

Criado 17 de abril de 2017
Ultima resposta 10 de mai. de 2017
Respostas 3
Participantes 3