分类目录归档:开发

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的,所以没得商量。

业务系统中标志位的实现方法

业务系统中有时会有许多“是/否”的信息项,在实现上的常用方法是:为每个信息项设计一个字段,但这种方法也有一个弊端:1. 如果这种信息项很多,数据表的字段就会特别多,浪费空间;2. 如果业务上增加新的信息项,数据库增加字段不说,需要前后端代码同时做许多代码的更改;下面我们就用一个“位运算”的方法解决以上问题; 继续阅读业务系统中标志位的实现方法