чтение файла свойств из JSTL - PullRequest
6 голосов
/ 25 ноября 2010

Я пытаюсь прочитать форму файла свойств JSTL, используя taglib, но не могу получить к ней доступ

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> 

Я правильно нашел файл tld в файле web.xml, уверен в этом

<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/lib/fmt.tld</taglib-location>
</taglib>

Имя файла свойств - msg. Свойства

<fmt:bundle basename="msg">
<fmt:message key="error.more" />
</fmt:bundle>

Я продолжаю получать

???error.more???

вместо сообщения в файле свойств

Я думаю, что проблема в том, чтобы найти файл свойств, или в базовом имени в

<fmt:bundle basename="msg">

где мне найти файл свойств и как я могу сделать ссылку на него в коде ??

спасибо всем

Ответы [ 5 ]

9 голосов
/ 30 августа 2011
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> 

Это неправильный URI.Это для старой версии JSTL 1.0, которая давно вышла из жизни.Для JSTL 1.1 вы должны использовать http://java.sun.com/jsp/jstl/fmt.


Я правильно нашел файл tld в файле web.xml, уверен в этом

<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/lib/fmt.tld</taglib-location>
</taglib>

Это не нужно, когда вы исправляете URL taglib.Удалите его из вашего web.xml и удалите все эти свободные файлы TLD.Вы должны просто иметь jstl.jar и standard.jar в /WEB-INF/lib.Или когда вы используете JSTL 1.2, просто jstl-1.2.jar.Больше ничего делать не нужно.

См. Также:


Имя файла свойств - msg.свойства

<fmt:bundle basename="msg">
<fmt:message key="error.more" />
</fmt:bundle>

Я получаю

???error.more???

вместо сообщения в файле свойств. Я думаю, что проблема заключается либо в поиске файла свойств, либо в базовом имени в <fmt:bundle basename="msg">где я должен найти файл свойств и как я могу сделать ссылку на него в коде?

Поместите его в путь к классам.В вашем конкретном случае с базовым именем msg вам нужно поместить файлы msg.properties в корень пути к классам.

См. Также:

3 голосов
/ 22 апреля 2011

Попробуйте

   < fmt:bundle basename="msg"/>
   < fmt:message key="error.more" />
2 голосов
/ 14 ноября 2012

1) где мне найти файл свойств? Вы должны хранить файлы свойств в вашем каталоге src. Например, у вас есть два файла свойств для английского и датского языков с именем

Messages_en.properties

Messages_da.properties

внутри пакета с именем, как показано ниже

com.isuru.test.i18N.resources

2) и как я могу сделать ссылку на него в коде?

<fmt:setLocale value="en" scope="session"/>
<fmt:bundle basename="com.isuru.test.i18N.resources.Messages" scope="session">
<fmt:message key="error.more" />

Это напечатает соответствующий массаж на английском языке

1 голос
/ 15 декабря 2012

Как говорит Изуру, вы должны поместить файл свойств в пакет, как если бы вы говорили о классе.

У меня возникла странная проблема, я правильно ссылался на свой файл свойств, но так и не получил правильного вывода. Я обнаружил, что вы должны следовать одинаковому формату имени пакета для пакетов свойств, поэтому, если у вас есть пакеты:

com.test.clients   
com.test.stores 

Вы должны создать что-то вроде:

com.test.i18n 

Вы НЕ МОЖЕТЕ делать

other.test.i18n

Здесь вы можете хранить файлы вашей собственности

error.more.properties
error.more_es_MX.properties

А затем сослались на них, как вы это обычно делаете:

<c:set var="language" value="${not empty param.language ? param.language : not empty language ? language : pageContext.request.locale}" scope="session" />
<fmt:setLocale value="${language}" />
<fmt:setBundle basename="com.example.i18n.text" />
<fmt:message key="error.more" />

Также вот отличный ответ о том, как интернационализировать ваше веб-приложение

Как интернационализировать веб-приложение Java Как интернационализировать веб-приложение Java?

0 голосов
/ 09 ноября 2015

Это можно сделать, выполнив следующие шаги.Я поместил файл messages_en.properties в папку src / main / resources и сослался на файл свойств, используя этот код ниже.Я не рассматривал какую-либо локализацию, поэтому не упомянул ничего, связанного с этим.

  1. См. JSTL fmt uri в jsp.http://java.sun.com/jsp/jstl/fmt"%>

  2. См. Пакет в jsp.

  3. Используйте ключи, определенные в файле свойств.
...