chargement du fichier de propriété des valeurs dans web.xml à l'aide de servletContextListener
je veux charger les valeurs de propriété de formulaire fichier dans mon web.xml
c'est mon web.xml fichier
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<!-- Property listeners -->
<listener>
<listener-class>com.kpowd.utility.PropertyReading</listener-class>
</listener>
<display-name>JSF 2 + Spring 3 Integration example</display-name>
<!-- The welcome page -->
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
<!-- Spring listeners -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-security.xml,
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<!-- Change the primeface theme -->
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>${primefacestheme}</param-value>
</context-param>
<!-- Spring Security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Start JSF -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- JSF URL mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
et c'est mon servelet contexte listner classe
package com.kpowd.utility;
import java.io.IOException;
import java.util.Properties;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class PropertyReading implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent event) {
//TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent event) {
final String props = "/config.properties";
final Properties propsFromFile = new Properties();
try {
propsFromFile.load(getClass().getResourceAsStream(props));
} catch (final IOException e) {
e.printStackTrace();
}
for (String prop : propsFromFile.stringPropertyNames())
{
if (System.getProperty(prop) == null)
{
System.setProperty(prop, propsFromFile.getProperty(prop));
}
}
}
}
lorsque j'imprime les valeurs de cette classe, il me montre la convenance des valeurs
mais dans web.xml lorsque j'essaie d'accéder à ${primefacestheme} cette valeur, il ne charge pas
et c'est ma config.fichier de propriétés
primefacestheme=glass-x
wellcomepage=accdenied.xhtml
s'il vous plaît aider moi
- Pouvez-vous vérifier avec le changement web.xml
<context-param> <param-name>primefacestheme</param-name> <param-value>${primefacestheme}</param-value> </context-param>
- Je suppose que la propriété nom de la clé et
<param-name>
être même, Comme vous l'avez votre code ditSystem.setProperty(prop, propsFromFile.getProperty(prop));
- Oui "Amogh" il a parfaitement fonctionné thnks mate. u peut poster comme une réponse afin que je puisse le tag ' une réponse
Vous devez vous connecter pour publier un commentaire.
Pouvez vous renseigner auprès de changement dans web.xml:
Comme
config.properties
ayant la propriété nom de la clé commeprimefacestheme
et dans le code, nous allons vérifier avec le nom de cette touche, et si sesnull
puis en définissant la valeur de la propriété pour que le nom de la clé.En bref
<param-name>
et de la propriété nom de la clé doivent être de même.Que votre fichier de propriétés contenant la clé comme
primefacestheme
mais tout en appelant sa valeur que vous essayez d'utiliser une autre touchemodifier cette
à