Recuperar valor de arquivo properties referenciado no enum no JSF

2 respostas Resolvido
M

Bom dia senhores.

Gostaria de saber se alguém pode me ajudar recuperar um valor de dada chave de um arquivo properties, só que o valor dessa chave está num enum, que é chamado num p:selectOneRadio do primeFaces. A seguir vou dispobinilizar o código para entenderem melhor.

Eu coloquei o valor da chave no enum, porque pretendo utilizar a internacionalização.

Arquivo JSF

<p:selectOneRadio id="state" value="#{clientePhone.state}">
	<f:selectItems value="#{clientController.phoneStates}" var="p" itemValue="#{p}" itemLabel="#{p.label}" />
</p:selectOneRadio>

Controller

public PhoneState[] getPhoneStates(){
	return PhoneState.values();
}

Enum

public enum PhoneState {

	NO_CHIP(0, "phone.state.nochip"), 
	MEMORY_CARD(1, "phone.state.memorycard"), 
	COVER(2,"phone.state.cover"), 
	BATTERY(3, "phone.state.battery");

	private PhoneState(Integer cod, String label) {
		this.cod = cod;
		this.label = label;
	}

	private Integer cod;
	private String label;

	public Integer getCod() {
		return cod;
	}

	public void setCod(Integer cod) {
		this.cod = cod;
	}

	public String getLabel() {
		return label;
	}

	public void setLabel(String label) {
		this.label = label;
	}
	
}

Meu arquivo properties labels_pt_BR.properties

client.name=Nome
client.adress=Endere\u00E7o
client.homePhone=Telefone Resid\u00EAncial
client.businessPhone=Telefone do Trabalho

2 Respostas

campelo.m
Solucao aceita

Boa tarde,

utilize itemLabel="#{message[p.label]}"

e no arquivo faces config coloque:

<application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver> <resource-bundle> <base-name>messages</base-name> <var>msg</var> </resource-bundle> <locale-config> <default-locale>pt_BR</default-locale> </locale-config> </application>

M

Obrigado camplelo.m.

Resolveu o problema.

Criado 22 de fevereiro de 2016
Ultima resposta 23 de fev. de 2016
Respostas 2
Participantes 2