`
san_yun
  • 浏览: 2639649 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

webx3核心配置

 
阅读更多
Webx3 服务配置
1 RequestContext
<!-- 设置request/response/session。 -->
<services:request-contexts
    xmlns="http://www.alibaba.com/schema/services/request-contexts">
        <buffered />
        <lazy-commit />
        <parser />
        <set-locale defaultLocale="zh_CN" defaultCharset="UTF-8" />
        <session>
            <id>
                <cookie path="/" maxAge="0" httpOnly="true" />
            </id>
            <stores>
                <session-stores:cookie-store id="temporaryCookie">
                    <session-stores:cookie name="tmp" />
                </session-stores:cookie-store>
            </stores>
            <store-mappings>
                <match name="*" store="temporaryCookie" />
            </store-mappings>
        </session>
</services:request-contexts>
2 PipeLine.xml
<services:pipeline xmlns=http://www.alibaba.com/schema/services/pipeline/valves>
        <!-- 初始化turbine rundata,并在pipelineContext中设置可能会用到的对象(如rundata、utils),以便valve取得。 -->
        <prepareForTurbine />
        <!-- 预备webx所需的对象。 -->
        <prepareForWebx2 />
        <setLoggingContext />
        <!-- 分析URL,取得target。 -->
        <analyzeURL homepage="homepage" />
        <checkCsrfToken />
         <loop>
               … Valve
         </loop>
    </services:pipeline>
<services:pipeline xmlns=http://www.alibaba.com/schema/services/pipeline/valves>
    ………
    <loop>
            <choose>
                <when>
<pl-conditions:target-extension-condition extension="null, vm, jsp" />
                    <performAction />
                    <performTemplateScreen />
                    <renderTemplate />
                </when> 
                <when>
                   <pl-co ditions:target-extension-condition extension="do" />
                    <performAction />
                    <performScreen />
                </when>
                <otherwise>
                    <!-- 将控制交还给servlet engine。 -->
                    <exit />
                </otherwise>
            </choose>
         <breakUnlessTargetRedirected />
        </loop>
    </services:pipeline>
3 ModuleLoader
<!-- 装载模块。 -->
    <services:module-loader>
        <ml-factories:class-modules>
            <ml-factories:search-packages type="$1"
                packages="com.alibaba.sample.petstore.web.admin.module.*"
                includeAbstractClasses="true" />
       </ml-factories:class-modules>
        <ml-adapters:webx2-module-adapter />
    </services:module-loader>
4 PullService
<services:pull xmlns="http://www.alibaba.com/schema/services/pull/tools">
        <!-- 全局tools。 -->
        <services:tools>
            <!-- Webx3 tools。 -->
            <utils />
            <rundata-tool />
            <csrfToken />
        </services:tools>
        <!-- 每个request都会创建一次的tools。 -->
        <services:tools scope="request">
            <!-- Webx3 tools。 -->
            <control-tool />
            <!-- Webx2 tools。 -->
            <webx2-tool id="form" class="com.alibaba.service.form.FormTool" />
            <webx2-tool id="uri" class="com.alibaba.service.uribroker.URIBrokerTool" />
        </services:tools>
        <!-- 每个request都会创建一次的tools,但components之间共享同一个实例。 -->
        <services:tools scope="request" shareWithComponents="true">
            <!-- Webx3 tools。 -->
            <page-tool />
        </services:tools>
    </services:pull>
5  MappingRule
<services:mapping-rules xmlns="http://www.alibaba.com/schema/services/mapping-rules">
       <direct-module-rule id="action" />
        <!-- Target name => Screen module name (*.do) -->
        <direct-module-rule id="screen.notemplate" />
        <!-- Target name => Screen module name (*.jsp, *.vm) -->
        <fallback-module-rule id="screen" moduleType="screen" />
        <!-- Target name => Screen template name -->
        <direct-template-rule id="screen.template" templatePrefix="screen" />
        <!-- Target name => Layout template name -->
        <fallback-template-rule id="layout.template" templatePrefix="layout" />
        <!-- Target name => Control module name (setControl method) -->
        <direct-module-rule id="control.notemplate" />
        <fallback-module-rule id="control" moduleType="control" />
        <direct-template-rule id="control.template" templatePrefix="control" />
    </services:mapping-rules>
6 DataResolver
<!-- 支持注入参数,可以在这里扩展自己的参数绑定器 -->
    <services:data-resolver xmlns="http://www.alibaba.com/schema/services/data-resolver/factories">
        <turbine-rundata-resolver />
        <parameter-resolver />
        <form-resolver />
    </services:data-resolver>
7 Form
<services:form>
        <services:group name="addProduct">
            <services:field name="productId" displayName="产品ID">
                <required-validator>
                    <message>必须填写${displayName}</message>
                </required-validator>
                <custom-error id="duplicatedProductId">
                    <message>产品ID和已有产品冲突</message>
                </custom-error>
            </services:field>
          services:field name="picture" displayName="产品图片">
                <required-validator>
                    <message>必须上传产品图片</message>
                </required-validator>
                <uploaded-file-validator
                    contentType="image/gif, image/jpeg, image/pjpeg, image/jpg, image/png">
                    <message>${displayName}不是合法的图片文件</message>
                </uploaded-file-validator>
                <uploaded-file-validator maxSize="100K">
                    <message>${displayName}不能超过${maxSize}字节</message>
                </uploaded-file-validator>
            </services:field>
        </services:group>
    </services:form>
8 Rewrite
<services:request-contexts id="rewrite" sort="false">
  <parser />
    <rewrite>
    <!-- 永久重定向,301   -->
    <rule pattern="/test1/hello.htm">
    <substitution uri="/test1/new_hello.htm" flags="L,R=301" />
    </rule>
    <!-- 临时重定向,302,不保留参数   -->
    <rule pattern="/test2/hello.htm">
    <substitution uri="/test2/new_hello.htm" flags="L,R" />
    </rule>
    <!-- 临时重定向,302,保留参数   -->
    <rule pattern="/test2.4/hello.htm">
    <substitution uri="/test2.4/new_hello.htm" flags="L,R,QSA" />
    </rule>
分享到:
评论

相关推荐

    webx3学习的demo,以及留言板的小例子

    WebX3是一个强大的开源Web应用程序框架,主要用于构建企业级的Web应用系统。...这个压缩包中的资源为学习WebX3提供了一个很好的起点,通过实践这些示例,你可以逐步掌握WebX3的核心技术和开发流程。

    webx3文档——web开发

    Webx核心框架的设计理念着重于其初始化过程,包括初始化级联的Spring容器和初始化日志系统。Webx的响应请求机制通过增强request、response、session的功能,并采用Pipeline流程机制来处理请求。异常处理机制和开发...

    淘宝框架 Webx3资料

    - **快速开发**:借助Webx3的自动化配置和约定优于配置的原则,开发团队可以更快地完成项目开发任务。 #### 五、总结 综上所述,Webx3框架凭借其成熟可靠、开放扩展的设计理念,在阿里巴巴集团内外得到了广泛的...

    Webx及框架简介

    Webx的核心设计理念是将业务逻辑、数据访问和用户界面紧密地集成在一起,使得开发者可以更专注于业务功能的实现,而非底层技术的细节。 在Webx框架中,主要由以下几个关键组件构成: 1. **控制器(Controller)**...

    Webx3_Guide_Book.rar_tapeov2_webx_webx 开源框架

    本指南将深入探讨Webx3框架的核心特性和使用方法,结合《Webx3_Guide_Book.pdf》的详细文档,我们将全面解析以下几个关键知识点: 1. **框架架构**:Webx3 的架构设计基于组件化思想,允许开发者灵活地选择和配置...

    webx

    3. **动态表单**:WebX 支持动态表单生成,允许开发者通过配置文件定义表单字段和验证规则,自动根据数据库结构生成表单,减少了重复代码。 4. **数据库操作**:WebX 提供了强大的数据库操作接口,支持SQL语句的...

    webx总结 项目实践总结

    首先,WebX会加载配置文件,这些配置文件通常包括`webx.properties`,定义了系统的基本设置。接着,框架会扫描指定的类路径,寻找并加载组件(Components),这些组件是WebX应用程序的核心。每个组件都有自己的生命...

    paoding-webx3-solr-lucene

    在"paoding-webx3-solr-lucene"项目中,Solr作为后端的核心组件,负责存储和管理经过Paoding分词后的数据,同时提供高效的查询和排序功能。 在这个项目中,Webx3与Solr通过HTTP通信,实现了前后端分离。当用户发起...

    创建简单的WEBX应用

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

    WebX入门指南示例程序

    WebX项目的典型结构包括src/main/java(存放Java代码)、src/main/resources(存放资源配置文件)、WEB-INF(存放web.xml等Web应用配置文件)等。了解这些目录的作用对于后续开发至关重要。 4. **控制器...

    Webx3 Guide Book pdf

    ### Webx框架核心知识点 #### 一、Webx框架简介 **Webx**是一个由阿里巴巴集团内部开发并广泛使用的Web框架。它采用了经典的MVC(Model-View-Controller)设计模式,并强调页面驱动和“约定优于配置”的理念,旨在...

    Webx3_Guide_Book.pdf

    本知识点将详细介绍Webx框架的核心理念、架构层次、使用优势以及在实际开发中的应用方法。 Webx框架的历史可以追溯到2010年,当时设计者MichaelZhou出版了《Webx框架指南》,详细介绍了Webx框架的设计初衷和使用...

    通用WEB框架 Webx.zip

    Webx的核心理念是简化Web应用开发,通过提供丰富的组件和模式,让开发者可以快速地创建功能完备的Web应用,而无需从头编写大量重复的代码。 在Webx框架中,开发者可以利用其提供的控制器、模型、视图和数据访问组件...

    webx框架指南

    资源在Webx框架中是一个非常核心的概念,它不仅涉及资源的概述,如资源的定义、表示、访问和遍历,还引入了Spring的ResourceLoader机制,讨论了在代码中如何取得资源以及Spring装载资源的内部机制。此外,还提供了...

    webx-springExt整合eclipse插件

    Webx的核心特性包括强大的URL映射、数据绑定、事件驱动以及模板引擎等。 SpringExt是Webx框架的扩展,它引入了Spring框架的强大功能,如依赖注入(DI)、面向切面编程(AOP)、事务管理等,增强了Webx的灵活性和可...

    阿里巴巴J2EE Webx框架简介

    Webx框架的核心理念是模块化,这使得开发过程更加灵活,允许开发者将应用程序的不同部分(如业务逻辑、用户界面等)封装在独立的组件(Car)中。随着Webx3.0的开源,它为更多的开发人员提供了使用和贡献该框架的机会...

    webx总结

    3. 自定义解析器:Webx允许开发者自定义数据解析器,以实现特定的数据处理逻辑,如优化批量操作、缓存策略或者实现复杂的数据转换。 4. 性能优化:通过合理配置和使用数据解析器,可以显著提升Web应用的数据处理...

Global site tag (gtag.js) - Google Analytics