`
tk_zhang
  • 浏览: 232092 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Webx学习小结

    博客分类:
  • Java
阅读更多

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作用域。这种作用域的工具会在每次请求时创建和初始化,因此它可以保存与当前请求相关的数据,但这种工具不能被多个请求共享。

 

11
0
分享到:
评论
3 楼 z274084093 2011-03-08  
z274084093 写道
刚才我们创建了default.vm布局。需要强调的是,这个布局不仅仅对hello.vm有效,而且对所有页面都有效。



只是对于没有layout的会有效,就是在layout层上没有与screen相同名称的VM时才会调用默认的default。vm
2 楼 z274084093 2011-03-08  
刚才我们创建了default.vm布局。需要强调的是,这个布局不仅仅对hello.vm有效,而且对所有页面都有效。
1 楼 wufei1310 2011-01-10  
朋友,你那有webx的相关资料吗?淘宝上虽开源,但现在源码一直下不下来

相关推荐

    Webx3.0小结

    webx3.0学习小结

    webx学习总结.pdf

    【标题】:Webx框架详解及学习总结 【描述】:本文主要介绍Webx框架的概览、核心架构以及环境搭建过程,旨在帮助读者理解和掌握Webx作为一个MVC框架的关键特性。 【正文】: Webx是一个基于MVC(Model-View-...

    webx总结

    【标题】:“Webx 总结” 在IT领域,Webx是一个基于Java的开源Web应用框架,主要用于构建企业级的...通过学习这些内容,开发者不仅可以掌握Webx的基本使用,还能深入了解其工作机制,从而在实际开发中更加得心应手。

    创建简单的WEBX应用

    llerServlet 是 Webx 框架的核心组件,它负责处理所有以 .htm 和 .do 结尾的请求。...对于初学者来说,理解 Webx 的核心概念,如 ControllerServlet 和服务配置,是进一步学习和使用 Webx 的关键。

    webx3框架指南PDF教程附学习Demo

    该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用,并附学习的Demo 为什么要用Webx而不是其它的开源框架? 现在有很多Java的Web框架可供选择,并且它们也都是免费的。例如: • Struts • Webwork • ...

    阿里巴巴Web及框架简介

    通过学习这些材料,开发者不仅可以了解Webx的运作原理,还能掌握如何在实际项目中有效利用这一工具。 此外,阿里巴巴还推出了一系列其他的Web框架,如Spring Boot的增强版Spring Cloud Alibaba,它提供了微服务治理...

    淘宝网站架构分析学习

    #### 六、总结 淘宝技术架构的发展历程不仅反映了中国互联网行业的快速发展,也为我们提供了宝贵的经验和启示: - **持续创新**:面对业务发展的挑战,不断尝试新技术、新方法。 - **灵活适应**:根据实际情况调整...

    某教育网网站群设计方案.pptx

    总结起来,这个教育网网站群设计方案关注了服务器配置、网站架构、安全性、用户体验和内容管理等多个核心要素,旨在构建一个高效、安全、易管理的教育信息平台。同时,它还融入了Web 2.0的理念,力求提供丰富、互动...

Global site tag (gtag.js) - Google Analytics