Alguém sabe como faço no construtor do PhaseListener para recuperar valores que estão no meu web.xml?
Meu web.xml resumido:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>param1</param-name>
<param-value>12345</param-value>
</context-param>
</web-app>
No PhaseListener existe um jeito de pegar o contexto que é:
@Override
public void beforePhase(PhaseEvent event) {
if (event.getPhaseId().equals(PhaseId.RESTORE_VIEW)) {
try {
ExternalContext context = event.getFacesContext().getExternalContext();
String param1 = context.getInitParameter("param1"); // funciona!!
}
} catch (Exception e) {
}
}
}
Porém isso só vale quando estamos nos métodos beforePhase e afterPhase pois são passados eventos como parâmetros. E no caso do construtor? Como fica, como faz? =(
Exemplo:
public class MeuPhaseListener implements PhaseListener {
private String param1= null;
public MeuPhaseListener(){
FacesContext context = FacesContext.getCurrentInstance().getELContext(); // não funciona!!!
ExternalContext context = event.getFacesContext().getExternalContext(); // tbm não funciona pois nao tenho evento!!!
param1= context.getInitParameter("param1");
}
}
E agora?
Agradeço a ajuda!