分类目录归档:Java

使用配置文件*.properties注意事项

在项目中使用配置文件*.properties的几点注意事项:
properties是以key=value的形式保存,有时key中会包含一些特殊字符如:冒号、等号、空格、@
等,这时就需要经过特殊处理来使得应用正确加裁数据。
1.空格:使用\u0020来替换key中的空格。
2.冒号:使用反斜杠字符 \ 转义,即\:。
3.制表符:使用\u0009。
4.等号:使用\=。
5.换页符:使用\u000C。
6. @等:使用\@的形式

一个数据库密码中包含了@,未使用\转义,导致无法连接数据库,逼得我写死在applicationContext.xml文件中,因为这个问题郁闷了很久,特记录一下。

Struts:Could not execute action一例

最近在Tomcat中运行挺好的一个项目,搬到JBoss 5.1上就出现了N多问题,其中之一就是Could not execute action:……
看具体的错误,出现在访问私有变量ApplicationContext 的时候,应该就是上下文变量为空了。但是为什么是空呢?
钻了死胡同,一直认为是JBoss包跟项目包有冲突, 几个月的时间都在纠结中,差点就想放弃了,今天看了一下只是部分Action报错,有的Action还是可以用的,接下来就是要分析可用的Action和不可用的Action的区别,类和注解都正常,没有什么问题,剩下的问题就是配置文件了,经过仔细对比发现能正常使用的Action在Bean定义的时候都有下面例子中的红色字体部分,不能使用的都没有这个参数;
<bean id=”actionId” scope=”prototype”><property ……></property></bean>

添加上这个参数后就OK了,终于可以送一口气了。

接下来看一下Spring的这个参数的含义:
singleton:缺省值, 容器中同一个id只创建一个实例,什么时候用都是它;
prototype:原型,每次访问都会new一个对象;
session:回话有效;
request:请求;每次请求创建一个实例;

Struts要求Action作用域必须是prototype的,所以没得商量。