26
2019.2

空操作

作者: POPASP
空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(`empty_`)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。 例如,下面我们用空操作功能来实现一个城市切换的功能。 我们只需要给City控制器定义一个 `Empty_` (空操作)方法: 控制器city.asp代码如下 ```brush:vb Class City '从控制器的外部并不能访问到do_city方法 private sub do_city( cityName ) '这里是相关操作代码 that.d("cityName") = cityName end sub '把所有城市的操作解析到city方法 sub empty_ 'POP_MVC.a可以获取地址栏中的a参数 Call Me.do_city( POP_MVC.a ) end sub End Class ``` 接下来,我们就可以在浏览器里面输入 ```brush:html http://serverName/city.asp?c=city&a=heijing http://serverName/city.asp?c=city&a=shanghai http://serverName/city.asp?c=city&a=shenzhen ``` 由于City控制器并没有定义beijing、shanghai或者shenzhen操作方法,因此系统会定位到空操作方法 `empty_` 中去解析,`empty_`方法的参数就是当前URL里面的操作名,因此会看到依次输出的结果是: 当前城市:beijing 当前城市:shanghai 当前城市:shenzhen 从控制台的流程我们可以看到如下执行过程: ```brush:xml 准备执行 CityAction.beijing 没有方法 CityAction.beijing 准备执行 CityAction.Empty_ 开始执行 CityAction.Empty_ 执行结束 CityAction.Empty_ ``` 空模块的名称可以通过配置项“EMPTY_ACTION”修改。