Webx3 FrameWork 教程

Webx是什么?

 

Webx是一个框架,它可用来做下面的事情:

 

创建一个全功能的Web应用

Webx提供了创建一个Web应用所需要的所有必要功能。

 

创建一个新的Web框架

Webx允许你定制、甚至重写大部分的Webx框架逻辑,从而实现全新的功能,或者和其它应用框架相整合。

 

创建一个非Web应用

Webx的功能并不受限于Web应用,而是对所有类型的应用都有帮助。

 

Webx所提供的SpringExt子框架是对Spring框架的扩展,能简化Spring的配置,加强了Spring组件的扩展性。

 

浏览源码

Webx的源码被托管在GitHub。你可以从浏览器中直接查看Webx的全部源代码:https://github.com/webx/citrus

 

取得源码

你需要安装Git。然后用下面的命令取得所有可编译的源代码:

 

git clone https://github.com/webx/citrus.git

编译源码

你需要安装Maven。然后用下面的命令编译所有的源代码:

 

cd citrus

mvn clean install

 

创建第一个Webx应用

 

 

安装JDK  & 安装和 配置maven

 

Webx需要JDK 5.0以上的版本。请从这里下载并安装它:http://www.oracle.com/technetwork/java/javase/

 

Webx需要maven 2或更高版本。请从这里下载并安装它:http://maven.apache.org/

[注意] 注意

 

你不需要对maven进行特殊的配置,因为运行Webx应用所需要的所有包都存放在全世界共享的中心Maven仓库(Central Maven Repository)中。Maven将从那里自动获取所有的jar包、源代码和javadoc

 

你可以从这里查询到所有和Webx有关的发布包:http://search.maven.org/#search%7Cga%7C1%7Ccom.alibaba.citrus

 

安装集成开发环境

如果你使用Eclipse(从这里下载:http://www.eclipse.org/),建议安装如下插件:

 

    Maven eclipse插件:http://eclipse.org/m2e/

 

    Git eclipse插件:http://eclipse.org/egit/

 

    SpringExt eclipse插件:http://openwebx.org/updatesite/

    [注意] 注意

 

    关于SpringExt eclipse插件,请参阅更详细的说明:第12.3 节 “Eclipse插件”。

 

 

创建应用

 

Windows下不支持命令换行

 

mvn archetype:generate -DgroupId=com.alibaba.webx -DartifactId=tutorial1 -Dversion=1.0-SNAPSHOT -Dpackage=com.alibaba.webx.tutorial1 -DarchetypeArtifactId=archetype-webx-quickstart -DarchetypeGroupId=com.alibaba.citrus.sample -DarchetypeVersion=1.8 -DinteractiveMode=false

 

 

 

会看见一个新目录:tutorial1。它就是我们刚刚创建的新项目。项目的各项参数如下所示:

 

项目组(groupId):com.alibaba.webx

项目名称(artifactId):tutorial1

项目版本(version):1.0-SNAPSHOT

 

项目中Java类的包名(package):com.alibaba.webx.tutorial1

 

你完全可以根据你的需要来调整上述命令中的参数,改用其它的groupIdartifactIdversion以及package

 

运行应用

 

mvn jetty:run

 

这条命令会启动Jetty Server,默认的端口是8081。请在浏览器地址栏输入地址,或直接点击这个链接:http://localhost:8081/

 

 

 

 

 

基于webx3的用户登陆系统

认识Webx3的目录结构及相关概念

 

 

 

 

 

Web3X 是一个典型的MVC结构

图一 存放的是 MVC中的Controller Java

图二 存放的是 MVC的 视图渲染模板

Model 业务逻辑层在此未涉及

 

Webx3 MVC结构中,值得一提的是 视图, 即渲染模板,Webx3的模板遵循turbine风格,根据职能不同。又分为Layout/Screen/Control  

 

 

 

 

 

 

用户系统开发演示

分析登录系统功能

 

 

 

 

 

 

 

开发登录功能

 

 

login.vm

$page.setTitle("login")

<form action="$app1Link.setTarget("form/login")" method="post">

    $csrfToken.hiddenField

    <input type="hidden" name="action" value="login_action"/>

    #set ($group = $form.login.defaultInstance)

    <p>登录</p>

    <p>#if($errorMsg)$errorMsg #end</p>

  <p>

    #if (!$group.name.valid)

        <p>$group.name.message</p>

    #end

        <input type="text" name="$group.name.key" value="$!group.name.value"/>

    #if (!$group.password.valid)

        <p>$group.password.message</p>

    #end

        <input type="text" name="$group.password.key" value="$!group.password.value"/>

       

        <input type="submit" name="event_submit_do_login"/>

    </p>

</form>

 

 

 

 

 

 

 

LoginAction.java

package com.alibaba.webx.tutorial1.app1.module.action;

import com.alibaba.citrus.turbine.Context;

import com.alibaba.citrus.turbine.Navigator;

import com.alibaba.citrus.turbine.dataresolver.FormGroup;

import com.alibaba.webx.tutorial1.app1.Visitor;

 

public class LoginAction {

public void doLogin(@FormGroup("login") Visitorvisitor, Navigator nav,

Context context) {

String name = visitor.getName();

String password = visitor.getPassword();

if (name.equals("chen") &&password.equals("123456")) {

nav.redirectTo("app1Link").withTarget("form/welcome")

.withParameter("name", name);

} else {

context.put("errorMsg","Name or Password id invaild");

}

}

}

 

 


/tutorial1/src/main/webapp/WEB-INF/app1/form.xml

 

        <group name="login" extends="csrfCheck">

            <field name="name" displayName="你的名字">

                <fm-validators:required-validator>

                    <message>必须填写 ${displayName}</message>

                </fm-validators:required-validator>

            </field>

            <field name="password" displayName="你的密码">

                <fm-validators:required-validator>

                    <message>必须填写 ${displayName}</message>

                </fm-validators:required-validator>

            </field>

        </group>

该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用,并附学习的Demo 为什么要用Webx而不是其它的开源框架? 现在有很多Java的Web框架可供选择,并且它们也都是免费的。例如: • Struts • Webwork • Tapestry • Spring MVC 以上框架都是非常优秀的。说实话,如果阿里巴巴网站在2001年开始,就有这么多可选择的话,无论选择哪一个都不会有问题。因为这些年来,所有的开源Web框架都在互相学习、并趋于相似。Webx也不例外,它吸收了其它框架的很多想法。因此,当你使用Webx的时候,你会觉得在很多方面,它和其它开源的框架非常类似。我并不是说所有的框架都一样好,而是说只要假以时日,所有的框架在发展过程中,必然会积聚好的方面,淘汰坏的方面,从而变得足够好。从这个角度看,的确没有特别明显的理由来选择Webx,但也没有明显的理由不选择Webx。 另一方面,由于每一种框架采用不同的设计,必然会有各自的优势。Webx也是如此 —— 它在某些方面有一些独到的设计,超越了同类框架Webx有哪些优势呢? Webx的优势 成熟可靠性 这个优势主要是针对阿里巴巴及属下网站而言。因为Webx在阿里巴巴和淘宝用了很多年。对于这种超大访问量的电子商务网站,Webx经受了考验,被证明是成熟可靠的。 开放和扩展性 • 对Spring的直接支持 —— Spring是当今主流的轻量级框架Webx 3.0和Spring MVC一样, 完全建立在Spring框架之上,故可运用Spring的所有特性。 • 扩展性 —— Webx 3.0对Spring做了扩展,使Spring Bean不再是“bean”,而是升级成“组件”。一个组件可以扩展另一个组件,也可以被其它组件扩展。这种机制造就了Webx的非常好的扩展性,且比未经扩展的Spring更易使用。 • 开放性 —— Webx被设计成多个层次,层次间的分界线很清晰。每个层次都足够开放和易于扩展。你可以使用全部的Webx,也可以仅仅使用到Webx的任何一个层次。 引言 ............................................................................................................................... ix 1. 阅读向导 ............................................................................................................. ix 2. Webx是什么? .................................................................................................... ix 3. Webx的历史 ....................................................................................................... ix 4. 为什么要用Webx而不是其它的开源框架? ............................................................. x 5. Webx的优势 ........................................................................................................ x 5.1. 成熟可靠性 ................................................................................................ x 5.2. 开放和扩展性 ............................................................................................. x 6. Webx还缺少什么? .............................................................................................. x 部分 I. Webx框架概览 ......................................................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrchesian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值