通过JSTL调用Spring里的bean
来源:互联网 发布:淘宝两钻买家有什么用 编辑:程序博客网 时间:2024/06/06 14:20
Spring提供了一个WebApplicationObjectSupport类来供我们使用,用来把定义在spring中的对象与前台页面联系起来。
为了在页面中可以方便的通过EL表达式取出spring里的bean,我们需要借助HashMap的特性并重写其方法。
首先,需要一个继承WebApplicationObjectSupport的类,并重写其initApplicationContext()方法,并把该类配置在Spring中,且lazy-init=false,自动加载。
该类的主要作用就是把一重写了get方法的HashMap以"springctx"的名字存放着ServletContext中,在页面通过类似于"${springctx.xxxxx}"就可以调用到spring里的bean。
XML
标准的HashMap中key和value都是通过初始化或put方法等定义好的值,在调用get方法时会先调用containsKey(Object key)来判断map中是否存在该key对应的value,不存在的话,返回null。
而在SpringCtxLoader中,我们重写了springServices的get方法以使在调用其get方法时,会返回spring里的对应的bean,而不是其内部已存有的某种对象。所以我们还要重写containsKey(Object key)方法,使其一直返回true,否则我们将不会得到spring里的bean,而是null。
=========
此时我们就可以用"${springctx.xxxx}"来访问spring里的对象了。
EL表达式中可以采用两种方式访问一个Map,一种方式是${map.key}另一种方式式${map[“key”]},其中后者应用更为广泛,比如如果key为一个包含“.”或者空格的字符串,则不能用前者,比如map.cicy.name会被解释为map的key为city的对象的属性name的值
=========
还可以结合<ct:call>标签来调用bean里的非getxxx()形式的方法。
- 通过JSTL调用Spring里的bean
- 在JSP里调用spring管理的bean取得数据
- 通过Util类随意调用Spring管理的Bean
- jstl ct:call 调用bean的函数
- Spring中bean的调用
- Spring bean里的parent属性
- 怎样获取Spring工厂里的Bean
- Spring里bean(@Bean@Component) 的作用域@scope
- Spring通过FactoryBean创建bean的实例
- 通过JMX访问Spring的Bean
- spring通过编程的方式获取bean
- spring中通过ApplicationContext获取bean和通过bean工厂获取bean的区别
- 在 Linstener 中 调用 spring 的 bean
- Servlet中调用Spring管理的Bean
- Spring方法注入非单例bean的调用
- servlet中调用spring的bean
- Activiti的servicetask 调用Spring中Bean
- spring(12) Spring的通过工厂方法配置Bean
- 常用软件测试工具的分析
- .NET的那些事儿(8)——C#中的Delegate和Event
- 反驳《3G门户的危机将来临》中的观点
- 动荡年月(2)
- 将日期转换成中文格式的JS函数
- 通过JSTL调用Spring里的bean
- Fiddler工具使用说明
- 几种典型程序Button处理代码的定位
- 过滤文本中非法数据,以正常显示出数据
- 总算拿到《把脉VC++》的样书了~
- ORACLE培训之旅-湛江
- ubuntu 软件安装与卸载
- ASP.NET中TreeView控件使用小结
- DOS批处理中字符替换的小技巧