如何在纯JSP中添加自定义VariableResolver [英] How to add a custom VariableResolver in pure JSP

查看:0
本文介绍了如何在纯JSP中添加自定义VariableResolver的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望在不使用JSF或类似的东西时以编程方式添加一个自定义的VariableResolver,以便在1中提到的在作用域中查找Bean之前,EL将首先尝试解析其中的变量。

目标是使数据库中的对象按名称在EL中可用,并且可能有很多对象需要放入某个作用域。

现在,我将一个特殊的Bean放到会话作用域中,名称为‘z’,该Bean扩展了Map接口,因此允许使用${z.Address}、${z.fullName}这样的表达式访问对象。我正在尝试消除那个"z"。

如果我设法在筛选器中插入解析器会更好(我肯定会检查不会对每个Web请求多次执行此操作)

(编辑:可能我是在说ELContext,如何在那里放置我自己的VariableMapper或ELResolver或类似的东西)

推荐答案

您可以按如下方式注册您的自定义ELResolver

@WebListener
public class Config implements ServletContextListener { 

    @Override 
    public void contextInitialized(ServletContextEvent event) {
        ServletContext servletContext = event.getServletContext(); 
        JspApplicationContext jspContext = JspFactory.getDefaultFactory().getJspApplicationContext(servletContext); 
        jspContext.addELResolver(new YourELResolver()); 
    } 

    // ... 
}

注意:此方法需要Servlet 2.5/JSP2.1或更高版本。

这篇关于如何在纯JSP中添加自定义VariableResolver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆