Я просто застрял в следующем коде.Непонятно, как работает JSP magic
Вот в моем веб-приложение динамического contextListener
:
package ua.nure.sanin.web.listener;
import java.util.ResourceBundle;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import org.apache.log4j.Logger;
@WebListener
public class ServletContextListenerImpl implements ServletContextListener {
private static final Logger LOG = Logger.getLogger(System.class);
@Override
public void contextDestroyed(ServletContextEvent arg0) {
LOG.info("contextDestroyed");
}
@Override
public void contextInitialized(ServletContextEvent sce) {
LOG.info("contextInitialized");
ResourceBundle rb = ResourceBundle.getBundle("lang_en");
sce.getServletContext().setAttribute("lang", rb);
}
}
Я поставил ResourceBundler
как атрибут.
Теперь у меня есть страница JSP, которая хорошо работает. Он содержит такой код:
${lang.welcomeCoffee}
Вопрос:
Как делает ${lang.welcomeCoffee}
работу?
Если предполагается:
request.getServletContext().getAttribute("lang")).getString("welcomeCoffee");
http://stackoverflow.com/tags/el/info –
, но ResourseBundler не содержит метод getWelcomeCoffe или поле. –
У вас есть 'welcomeCoffee' как поле в' ResourseBundler'? – barunsthakur