resource loadbundle internacionalizacion i18n change basename application java jsp properties

java - loadbundle - cómo usar el archivo de propiedades en jsp



jsf load resource bundle (3)

Crea el archivo test.properties en tu paquete

pname=xyz psurname=abc

crear archivo jsp:

<%@ page language="java" import="java.util.*" %> <%@ page import = "java.util.ResourceBundle" %> <% ResourceBundle resource = ResourceBundle.getBundle("test"); String name=resource.getString("pname"); String surname=resource.getString("psurname"); %> <%=name %> <%=surname%>

Posible duplicado:
Cómo cargar un archivo .properties en un jsp

Estoy intentando usar mi archivo de propiedades en JSP pero no funciona correctamente y produce un error

Error: myproperties.properties (The system cannot find the file specified)

Aquí estoy tratando de acceder a mi archivo de propiedad:

<% try { FileInputStream fis = new FileInputStream("myproperties.properties"); Properties p = new Properties(); p.load(fis); String LogFileName = p.getProperty("NameOfLogFile"); out.println(LogFileName); } catch (Exception e) {// Catch exception if any out.println(e.getMessage()); }

He intentado de muchas maneras acceder al archivo de propiedades. ¿Cómo puedo solucionar esto?


Intente cambiar FileInputStream fis = new FileInputStream("myproperties.properties"); a FileInputStream fis = new FileInputStream(new File("myproperties.properties"));

Además, asegúrese de que las clases que está utilizando ya se hayan importado en su archivo jsp. A saber,

<%@ page import="java.io.FileInputStream" %> <%@ page import="java.io.File" %>


JSP se ejecuta en el contenedor de servlets, por lo que su directorio de trabajo actual está definido por el contenedor. Normalmente es el directorio donde está instalado el contenedor o su directorio bin . En cualquier caso, no es el lugar donde desea almacenar su archivo de propiedades personalizadas.

Hay 2 enfoques típicos para hacer lo que necesita.

El primer enfoque es bueno si su archivo es parte de su aplicación y nunca lo cambia en la implementación. En este caso léelo de los recursos:

props.load(getClass().getResourceAsStream())

o mejor

props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream())

El segundo enfoque es bueno si desea cambiar su archivo de propiedades en el entorno de implementación. En este caso, póngalo en algún lugar del sistema de archivos fuera de su contenedor. Por ejemplo, /opt/mycompany/conf/myproperties.properties en Linux o en cualquier otra ubicación que desee. Ahora debes usar la ruta absoluta al crear FileInputStream .

Para hacer que el sistema sea más configurable, no debe escribir la ruta al archivo de configuración dentro del código. Un mejor enfoque es pasarlo a la aplicación usando las propiedades del sistema, por ejemplo, agregar un parámetro como -Dmycompany.conf=/opt/mycompany/myprops.properties cuando está ejecutando su servidor de aplicaciones. Cuando quieras leer el archivo haz lo siguiente:

new FileInputStream(System.getProperties("mycompany.conf"))

Ahora la configuración de su sistema puede ser controlada independientemente por el desplegador.