2015-06-29 2 views
0

Я просто застрял в следующем коде.Непонятно, как работает 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"); 
+3

http://stackoverflow.com/tags/el/info –

+0

, но ResourseBundler не содержит метод getWelcomeCoffe или поле. –

+0

У вас есть 'welcomeCoffee' как поле в' ResourseBundler'? – barunsthakur

ответ

0

На самом деле это не

request.getServletContext().getAttribute("lang").getString("welcomeCoffee");

Начиная с версии 3 EL, вы можете настроить обработку языка выражение несколькими способами. Возможно, ваш сервер знает, как читать пакеты ресурсов.

См. What's New With Expression Language In Java EE 7 для обзора.

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