2014-09-02 29 views
6

Làm cách nào để tìm thuộc tính của tôi từ đối tượng ServletContext trên trang JSP?Lấy thuộc tính từ ServletContext trên trang JSP

tôi đặt nó trước khi in:

public class MyServletContextListener implements ServletContextListener{ 

private static final Logger logger = LoggerFactory.getLogger(MyServletContextListener.class); 

@Override 
public void contextInitialized(ServletContextEvent event) { 
    logger.info("Init gameEngine in listener"); 
    Engine engine = Engine.getInstance(); 
    event.getServletContext().setAttribute("engine", engine); 
} 

@Override 
public void contextDestroyed(ServletContextEvent event) { 

}} 

và bây giờ muốn để có được trên trang JSP. Có thể thực hiện với ${pageContext.servletContext.attributeNames}?

Trả lời

14

sử dụng JSTL bạn có thể trực tiếp lấy đối tượng ứng dụng trong jsp

${applicationScope['attributeNames']} 

bằng cách sử dụng biểu thức này bạn có thể nhận đối tượng mức độ ứng dụng của bạn trực tiếp trong jsp

HOẶC

sử dụng scriptlet cũng có thể lấy đối tượng ứng dụng trong jsp và nếu bạn đang chạy trên web_app phiên bản 3.0 và có API Servlet 3.0, bạn có thể trực tiếp nhận biểu mẫu đối tượng ServletContext HttpServletReq uest như trong bên dưới Ví dụ:

<% 

    ServletContext sc = request.getServletContext(); 
    sc.getAttribute("attributeName"); 

%> 

nhưng bạn phải đúc tượng ứng dụng của bạn khi bạn sử dụng scriptlet để có được đối tượng ứng dụng để JSTL là tốt hơn để sử dụng sau đó mã scriptlet

Read more:

+2

Cảm ơn cho câu trả lời. Tôi đã sử dụng $ {applicationScope.engine.rooms} và nó hoạt động cho tôi!) –

+0

không có phương thức request.getServletContext(); tại sao – shareef

+0

Sử dụng 'request.getSession(). getServletContext()' để thay thế. – DFB

Các vấn đề liên quan