Inicio > Java, JSF, NetBeans > Leer un archivo properties desde un proyecto web + JSF

Leer un archivo properties desde un proyecto web + JSF

agosto 15, 2008

Hola en este post voy a mostrar como se debe hacer para leer un archivo *.properties de java, puesto dentro de un proyecto web JSF, es interesante mencionar que la forma de llamar a estos archivos difiere un poco de como se lo hace comúnmente en un proyecto swing de escritorio común y corriente,  ya que en este solo se pone el path relativo desde el pack del proyecto y ya, pero en un proyecto web no funciona así, por eso he decidido mostrarlo a continuación, esta es la forma que descubrí para hacerlo y me funcionó, pero si existe una forma mejor o más optima de realizarlo res ruego comentarlo para así aprender todos algo más.

Dentro de nuestro proyecto web se nos crean comunmente las páginas jsp, y su contraparte en código java dentro de un paquete en la carpeta Source Packages, dentro de ese paquete vamos a colocar el archivo .properties, teniendo en cuenta que este se va a llamar igual que la clase que lo va a leer, (por ejemplo: En mi paquete tengo una clase llamada Reportes.java, dentro del mismo paquete pondré un archivo de propiedades llamado reportes.properties), el código para ller este archivo quedaria así:

  String nombrePROP = Reportes.class.getSimpleName().toLowerCase() + ".properties";
  Properties props = new Properties();
  props.load(Reportes.class.getResourceAsStream(nombrePROP));
  String strPathOrigen = props.getProperty("pathORI");
  String strPathXLS = props.getProperty("pathXLS");

Con esto ya podriamos leer las propiesades que se tenga dentro de nuestro archivo properties.

Ahora para poder poner las propiedades sacadas del archivos en variables globales, tendremos que hacer lo siguiente, fuera de cualquier método y dentro de la clase vamos a poner esto, como un método más.

 private static String strPathOrigen;
 private static String strPathXLS;

 static {
      try {
          String nombrePROP = Reportes.class.getSimpleName().toLowerCase() + ".properties";
          Properties props = new Properties();
          props.load(Reportes.class.getResourceAsStream(nombrePROP));
          strPathOrigen = props.getProperty("pathORI");
          strPathXLS = props.getProperty("pathXLS");
      } catch (IOException ex) {
          Logger.getLogger(Reportes.class.getName()).log(Level.SEVERE, null, ex);
      }
 }

Así todo lo que se saque del archivo properties se almacenará globalmente y se podrá usar dentro de toda la clase si es necesario.

Espero que les haya servido…

Saludos christmo…

Anuncios
Categorías:Java, JSF, NetBeans Etiquetas: ,
  1. Leandro
    julio 13, 2009 en 4:04 pm

    Estoy realizando un sitio Web con internacionalización el problema es que los archivos (properties
    ) forma parte del proyecto y lo que yo necesito es que el administrador del sitio web pueda dar de altas nuevos idiomas y de esa forma traducir lo que ya se encuentra con un idioma por defecto. La idea es que esos datos se puedan guardar en una base de datos.

    La duda es si los archivos properties se les puede definir el path donde yo los quiera localizar y configurar la aplicación para que tome dichos archivos desde ese path.

    saludos.

  2. jorge
    febrero 25, 2011 en 8:52 pm

    Hola, yo he creado un jndi con un pool de conexiones, pero quiero dejar que la conexion a la base de datos pueda ser modificada mediante un fichero de propiedades
    como podria hacer esto?

    Saludos

  3. noviembre 6, 2012 en 6:05 pm

    Hi to every , as I am actually keen of reading this web site’s post to be updated on a regular basis. It includes fastidious data.

  4. enero 6, 2013 en 2:20 pm

    It’s actually very complex in this busy life to listen news on TV, therefore I only use world wide web for that purpose, and take the latest information.

  5. febrero 10, 2013 en 8:48 am

    905 of this cream’s buyers have claimed to have experienced positive cellulite reduction.

  1. agosto 15, 2008 en 3:51 pm
Los comentarios están cerrados.
A %d blogueros les gusta esto: