实现的目标是:
1.实现手机和PC模板请求的区分;使得来自两种不同设备请求的时候,各自路由到不同的目录中去
2.保持只有一个引擎实例对象
最后发现一个bug就是,当我从PC访问时初始化了PC的目录,呈现了PC模板,但是再去手机访问时,发现还是PC的样子
原因:NV引擎的实例设置为了静态实例,当第一次请求来的时候NV实例的属性进行了初始化,那么在此后
该静态实例将作为所有实例对象的公共成员存在,模板目录都指向同一个所以就导致了上面的结果
NV的模板目录属性在第一次初始化完成之后,在后面就不能进行动态的修改了
在2.0进化到3.0的时候 还有一个 中间版本 2.5
我将这个bug做了一个案例
请注意下面这个代码,体会静态和 非静态的区别
/// <summary>
/// 静态的引擎 用于数据的展示处理
/// </summary>
private static readonly VelocityEngine viewEngine = new VelocityEngine();
//private VelocityEngine viewEngine = new VelocityEngine();
如果是静态的话 就会有上述这个问题
实例的话是正常的
如何只保持一个静态实例同时实现不同设备请求的区分呢?
看4.0版本
将目录的初始化放在上面的那个层级
下载文件:http://files.cnblogs.com/files/Sky-cloudless/Test.zip