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.