(-1)写在前面
这两天读《javaweb开发王者归来》,学到Spring的PropertyPlaceholderConfigurer时出现一个问题,我已${jdbc.name}的形式赋值给bean中的属性,用main方法测试后,输出属性的值仍然是${jdbc.name}。
(0)解决问题之路
a.我先想到是不是打错了,于是和书上仔细的对照了一下,发现书上说的是PropertyOverrideConfigurer,但实际上配置文件中写的是PropertyPlaceholderConfigurer,换来换去几次没用。
b.问了老师,在老师回去看资料的一瞬间突然有了灵感,我百度了一下,觉得找到了解决方案。
c.我想是不是没导入jar包、spring版本低,导致el表达式无法解析,一开始还一个个判定,后来把能导入的都导了还是不行,
d.不断的换描述方式去百度我的问题,晚上有人要走了,提前一起吃一顿饭,吃晚饭去打lol,又百度了一会没有找到,于是在博问、问问上提问,到现在也没收到回复,英雄联盟输了一晚上,中途还断电了。
c.早上的时候想是不是main方法测试的原因,把项目部署到tomcat,在index.jsp中使用还是那样,于是乎我想到了是不是使用方式不对呢,之前也想到过PropertyPlaceholderConfigurer的bean是怎么和使用${jdbc.name}的bean关联到一起的,于是开始百度PropertyPlaceholderConfigurer的使用方法,间接的找到了解决方案。
(1)具体解决方案
其实我觉得这个问题碰到的人真不多…,可能都是第一次学spring就读了这本书的人吧..,下面是其中一种方式
配置文件
<bean class="service.IDaoImp" id="iDaoImp" >
<property name="name" value="${jdbc.name}"></property>
</bean>
<bean id="property" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:jdbc.properties</value>
</property>
</bean>
main方法
XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
PropertyPlaceholderConfigurer propertyPostProcessor = (PropertyPlaceholderConfigurer)beanFactory.getBean("property");
propertyPostProcessor.postProcessBeanFactory(beanFactory);
IDaoImp imp = (IDaoImp)beanFactory.getBean("iDaoImp");
System.out.println(imp.getName());
IDaoImp
public class IDaoImp
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
jdbc.properties
jdbc.name=\u738B\u65ED
jdbc.age=21
Spring2.0-applicationContext.xml中使用el表达式给实体类属性赋值被当成字符串-遁地龙卷风的更多相关文章
-
MyBatis中解决字段名与实体类属性名不相同的冲突
一: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致,这样就可以表的字段名和实体类的属性名一一对应上了,这种方式是通过在sql语句中定义别名来解决字段名和属性名的映射关系 ...
-
struts.xml中可以使用el表达式和ognl表达式
转自:http://blog.csdn.net/hzc543806053/article/details/7538723 文件上传链接: 1)Servlet 文件上传 ———— 点击打开链接 2)S ...
-
Mybatis中resultMap的作用-解决实体类属性名和数据库字段不一致
解决实体类属性名和数据库字段不一致
-
JavaWeb -- Jsp中的 EL表达式
lEL 全名为Expression Language.EL主要作用: l获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web ...
-
JSP中使用EL表达式
EL表达式 :EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. EL主要作用: 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种 ...
-
js 中使用el表达式 关键总结:在js中使用el表达式一定要使用双引号
js 中使用el表达式 关键总结:在js中使用el表达式一定要加双引号 js控制中用到了el表达式,最开始源码如下: var selected = ${requestScope.xxxxForm.re ...
-
js文件中使用EL表达式的问题
var str = '${str}' ; var str = '${obj.属性名}'; 只可以再jsp页面的<script></script>中使用,外部引入的js文件中不能 ...
-
jsp中的el表达式没有解析
今天发现jsp中的el表达式没有解析,把解决的过程记录一下 在web.xml的web-app节点的版本改成2.4以上
-
js中使用EL表达式总结
1.js中使用el表达式要加双引号或单引号:'${list}' 2.js变量获取el表达式中的对象:不能直接获取,直接获取得到的是该对象的toString值. 有两种方法:一:el中直接写对象的属性v ...
随机推荐
-
直接操作 SDL_Overlay YUV叠加上的像素
根据这篇解码出yuv数据后 海思h264解码库 y,u,v数据全部存进数组内, IntPtr y = _decodeFrame.pY; IntPtr ...
-
Spring学习笔记(2)——Bean的配置
要使应用程序中的Spring容器成功启动,需要以下三个方面的条件都具备: 1.Spring框架的类包都已经放到应用程序的类路径下 2.应用程序为Spring提供完备的Bean配置信息 3.Bean的类 ...
-
把验证码和生成时间负值给$_SESSION[vCode]生成图像给浏览器
php 图片 中文验证码 <img src="verify_image.php" alt="点此刷新验证码" name="verify_code ...
-
[SVN(Ubuntu)] SVN 查看历史详细信息
转载: http://lee2013.iteye.com/blog/1074457 以下内容,对ubuntu命令行查看代码变化非常有用. SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过 ...
-
C语言链表
#include<stdio.h>#include<malloc.h>#include<stdlib.h> typedef struct Node{ int dat ...
-
细数Android开源项目中那些频繁使用的并发库中的类
这篇blog旨在帮助大家 梳理一下前面分析的那些开源代码中喜欢使用的一些类,这对我们真正理解这些项目是有极大好处的,以后遇到类似问题 我们就可以自己模仿他们也写 出类似的代码. 1.ExecutorS ...
-
Codeforces Bubble Cup 8 - Finals [Online Mirror] D. Tablecity 数学题
D. Tablecity Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/D ...
-
mysql聚合函数
1.统计一下插入的数据总数 SELECT COUNT(giftCertificateId) AS number FROM gift_certificate WHERE giftCertificateN ...
-
hdu4707 Pet
Pet Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio ...
-
单元测试系列:Mock工具之Mockito实战
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6780719.html 在实际项目中写单 ...