webx执行的流程
首先,根据web.xml文件中的映射,*.htm被映射到Webx Controller Servlet,因此Webx Controller Servlet会被激活来处理这个请求,而Webx Controller Servlet制作了一件事,就是执行pipeline.所谓pipeline即管道,它是由一个或多个“阀门valve”构成的。管道是由PipelineService来创建并管理的。
$screen_placeholder--这个标记将被screen的内容所取代。
$control.setTemplate("")--这个标记竟被control的内容所取代,control是一种可重用的页面片段。
查找布局的规则:
刚才我们创建了default.vm布局。需要强调的是,这个布局不仅仅对hello.vm有效,而且对所有页面都有效。不信的话,你可以在templates/screen目录下创建一个新的screen试试看。不需要重启机器,你就可以看到效果!所有的页面现在都被“框”在这个布局里面了。
加入我的大部分页面的布局是相同的,但是有一两个页面例外,我该怎么办呢?Wbx的布局规则很灵活,足够应付大部分的场景。假如我的screen模板名字为/xxx/yyy/hello.vm,那么webx将依次查找下面的layout模板:
1. /xxx/yyy/hello.vm (如果找不到,尝试下一个)
2. /xxx/yyy/default.vm (如果找不到,尝试下一个)
3. /xxx/default.vm (如果找不到,尝试下一个)
4. /default.vm (如果找不到,尝试下一个)
5. (如果上面所有都找不到,就显示不带layout的screen)
如果你希望对/hello.vm指定layout,你可以在templates\layout目录下,为其特别创建一个和screen同名的layout模板就可以了。Webx假设同一目录下的模板,在功能上是相关的,因此布局也是相似的。因此你不仅可以在layout根目录下设置default.vm,也可以在各级子目录下设置default.vm。
页面驱动:
和其他大所属的Web框架不同,Webx是以页面为驱动的。和普通HTML页面不同的是,WebX页面是真正的动态页面。在Velocity中有许多内置的工具,下面是页面中可用的工具:
工具名 类名 作用域 说明
$arrayUtil ArrayUtil 全局 静态工具类,参见相应类的API文档。
其中最常用的当属$stringUtil和$stringEscapeUtil。
例如:## 判断字符串为空串
#if ($stringUtil.isEmpty($var)) … #end
## 进行HTML编码
<input type=”hidden” name=”myField”
value=”$stringEscapeUtil.escapeHtml
($var)”/> ## 进行JavaScript编
<script language=”JavaScript”>
var myvar="$stringEscapeUtil.escapeJavaScript ($var)";
</script>
$classLoaderUtil ClassLoaderUtil 全局
$classUtil ClassUtil 全局
$enumUtil EnumUtil 全局
$exceptionUtil ExceptionUtil 全局
$fileUtil FileUtil 全局
$localeUtil LocaleUtil 全局
$mathUtil MathUtil 全局
$messageUtil MessageUtil 全局
$objectUtil ObjectUtil 全局
$streamUtil StreamUtil 全局
$stringEscapeUtil StringEscapeUtil 全局
$stringUtil StringUtil 全局
$systemUtil SystemUtil 全局
$control ControlTool Request 创建control,例如:
$control.setTemplate(“header.vm”)
$control.setModule(“myControl”)
$form FormTool Request 处理表单
$page HtmlPageAttributeTool Request 设置页面属性
$rundata RunData Request 取得request、response相关的数据,例如:
$rundata.parameters.id 取得?id=123参数的值
$uri URIBrokerTool Request 生成URL,后文会讲到
所谓全局作用域,意思是这种工具仅当系统启动时被初始化,随后被所有页面重复使用,这种工具必须是无状态的,与全局作用域相对的,是Request作用域。这种作用域的工具会在每次请求时创建和初始化,因此它可以保存与当前请求相关的数据,但这种工具不能被多个请求共享。
分享到:
相关推荐
webx3.0学习小结
【标题】:Webx框架详解及学习总结 【描述】:本文主要介绍Webx框架的概览、核心架构以及环境搭建过程,旨在帮助读者理解和掌握Webx作为一个MVC框架的关键特性。 【正文】: Webx是一个基于MVC(Model-View-...
【标题】:“Webx 总结” 在IT领域,Webx是一个基于Java的开源Web应用框架,主要用于构建企业级的...通过学习这些内容,开发者不仅可以掌握Webx的基本使用,还能深入了解其工作机制,从而在实际开发中更加得心应手。
llerServlet 是 Webx 框架的核心组件,它负责处理所有以 .htm 和 .do 结尾的请求。...对于初学者来说,理解 Webx 的核心概念,如 ControllerServlet 和服务配置,是进一步学习和使用 Webx 的关键。
该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用,并附学习的Demo 为什么要用Webx而不是其它的开源框架? 现在有很多Java的Web框架可供选择,并且它们也都是免费的。例如: • Struts • Webwork • ...
通过学习这些材料,开发者不仅可以了解Webx的运作原理,还能掌握如何在实际项目中有效利用这一工具。 此外,阿里巴巴还推出了一系列其他的Web框架,如Spring Boot的增强版Spring Cloud Alibaba,它提供了微服务治理...
#### 六、总结 淘宝技术架构的发展历程不仅反映了中国互联网行业的快速发展,也为我们提供了宝贵的经验和启示: - **持续创新**:面对业务发展的挑战,不断尝试新技术、新方法。 - **灵活适应**:根据实际情况调整...
总结起来,这个教育网网站群设计方案关注了服务器配置、网站架构、安全性、用户体验和内容管理等多个核心要素,旨在构建一个高效、安全、易管理的教育信息平台。同时,它还融入了Web 2.0的理念,力求提供丰富、互动...