2013-08-29 6 views
3

У меня есть проект java maven. Я поместил файл свойств в папку src/main/resources.Загрузить файл свойств в сервлет?

src/main/resources 
    | 
    |___properties 
     | 
     | 
     |___custom_en_US.properties 

Я загружаю файлы свойств, как показано ниже в сервлет.

ResourceBundle bundle = ResourceBundle.getBundle("classpath:properties/custom", request.getLocale()); 

но выше строка бросает исключение, говоря, что ресурс не найден. Как я могу указать путь к файлу свойств? Пожалуйста, помогите мне.

Спасибо!

ответ

3

Избавиться от префикса «путь к классам» .: .getBundle("/properties/custom")

Приставка «Путь к классам» не является стандартом, она определяется некоторыми рамками, как весной.

+0

Спасибо за ваш ответ и отлично работает. Но проблема в том, что у меня есть 20 ключевых пар значений в файле proeprties. Я хочу, чтобы они были загружены в том же порядке, что и в файле свойств. Но когда я получаю их в сервлете, их порядок меняется. Как я могу получить пары значений ключа в том же порядке, как они находятся в файле свойств? Благодаря! – user755806

+1

Вы не должны полагаться на это, и поскольку структура обычно является хэш-таблицей, ее не может быть. Если вы хотите их по порядку, прикрепите их чем-то (1_foo, 2_bar), а затем закажите это. Но обычно порядок не должен иметь значения – Bozho

+0

Мне нужно поместить их в поле выбора html. Поэтому я нуждаюсь в них в порядке. Пожалуйста, предложите мне, если я могу что-нибудь сделать? – user755806

3

Прочитайте файл свойств из классам

Properties prop = new Properties(); 

try { 
    //load a properties file from class path, inside static method 
    prop.load(App.class.getClassLoader().getResourceAsStream("config.properties"));    
} catch (IOException ex) { 
    ex.printStackTrace(); 
} 
1

С «SRC/основные/ресурсов» существует в пути к классам, то любой ресурс, определенный под ним автоматически копируется в корень вашего развертывания/каталог для сборки (например, bin).

Чтобы получить доступ к ресурсу из класса java, используйте ключевое слово «/» в качестве префикса при поиске ресурса, остальные части пути зависят от того, вложен ли ваш ресурс в подпапки или нет.

Чтобы получить доступ к «SRC/основные/ресурсы/свойства/custom_en_US.properties», использование:

this.getClass().getResourceAsStream("/properties/custom_en_US.properties"); 

Это tutorial объясняет очень хорошо возможные способы чтения файла ресурса из пути к классам в Java-приложение, это стоит прочитать.

Смежные вопросы