框架搭建

执行环境:windows、maven

执行步骤:

1.新建一个目录,例如:D:\workspace。注意在盘符目录下是无法执行成功的。

2.执行如下命令:

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

命令执行完后,你会看见一个新目录:mywebx。这个项目其实是Maven从webx在中央库的原型生成的一个骨架,原型是archetype-webx-quickstar

WEB-INF文件夹下各个配置文件说明

  • logback.xml:日志配置;
  • web.xml:WEB工程初始化配置信息;
  • webx.xml:webx通用配置,webx容器初始化的Bean能够让所有子业务容器依赖。
  • webx-app1.xml:webx子业务配置,子业务配置能够创建spring容器,但子业务容器之间是不能互相注入的。

具体内容可以查看框架说明书《3.1. Webx的初始化》

WEB-INF/common文件夹下各个配置文件说明

  • pipeline.xml:拦截器配置文件,相当于SpringMVC(Struts)中的Interceptor。
  • pipeline-exception.xml:异常拦截配置文件。
  • resources.xml:资源文件加载配置,负责资源的重定向、重命名等。
  • uris.xml:外部地址url调用配置文件。
  • webx-component-and-root.xml:配置模板渲染引擎、映射规则等。
  • webx-component.xml:定义模板页面能够直接使用的工具类。

webx与我们接触的SpringMVC、Struts类似,只不过前者控制更加细粒度化,而后者我们更多的是使用开源的封装,所以配置量较少。

相关概念:

在webx中,layout指的是页面布局;control指的是页头页脚,左右边栏等公共的页面区域;screen指的是个性化的页面区域。

在layout布局页面,可以通过control.setTemplate()的方式指定引用的页面,如果在一个包目录下,直接写“文件名”即可,如果不在则需要写成“包名:文件名”的格式。

初始化页面的配置:

在webx.xml配置文件中配置,如上图,指定默认访问的是home下的页面,在这里我们可以修改为我们想使用的项目。

Webx请求的发起和处理:

请求发起:

在input框的隐藏域中,value值表示响应的action类。

在这里value值的书写格式可以直接写成是action类名也可以以下划线分割。

这里的name属性,是固定格式,event_submit_do_后面跟着方法名,并且以下划线分割。

在action中的方法名之前也要加do

在框架中,我们使用Context接口的实现类对象来完成后台到前台的值传递,使用方法如下图:

使用.put方法就将想返回的值放入context接口的实现类对象中,前台使用$符取值。

当需要跳转页面时,可以使用Navigator接口的实现对象来制定跳转的页面和跳转方式,使用如下:

这里有两种方式,转发forward和重定向redirect。

前台页面向后台传递的参数,我们可以使用TurbineRunData接口的实现对象来获取,也可以使用注解。

使用方式如下:

如果想一次性获取对象,可以使用@FormGroup注解来完成,使用如下:

在这里,需要我们在子应用目录下的form.xml中配置form表单,下面是我的配置:

并且在要使用的vm文件中,我们需要去引用form

这里的form.后面是我们在上面定义的form的name属性。

并且需要取值的input框的name值需要写成下面的格式:

这样我们就可以使用@FormGroup在action层去获取对象参数了。

WebX框架学习笔记之二----框架搭建及请求的发起和处理的更多相关文章

  1. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  2. Go学习笔记(二)搭建Visual Studio Code调试环境

    上一篇 Go学习笔记(一)安装Go语言环境 安装Visual Studio Code 这是目前我觉得最好用的文本编辑器了, https://code.visualstudio.com/ 中间有几部确认 ...

  3. Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0

    以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基于先前的工作经验,决定用较新版本的技术来 ...

  4. SSM框架学习笔记_第1章_SpringIOC概述

    第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念 ...

  5. X-Cart 学习笔记(二)X-Cart框架1

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 四.X- ...

  6. Spring框架学习笔记(8)——spring boot+mybatis plus+mysql项目环境搭建

    之前写的那篇Spring框架学习笔记(5)--Spring Boot创建与使用,发现有多小细节没有提及,,正好现在又学习了mybatis plus这款框架,打算重新整理一遍,并将细节说清楚 1.通过I ...

  7. phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构   pha ...

  8. JavaSE中Map框架学习笔记

    前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...

  9. JavaSE中线程与并行API框架学习笔记1——线程是什么?

    前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...

随机推荐

  1. MaltReport2:基于 OpenDocument/OpenOfficeXML 的报表引擎

    MaltReport 是我几年前写的开源单据.报表引擎,最近进行了较大的更新,尤其是几年来在生产项目中应用取得了非常好的效果,特别写篇介绍文字给大家分享一下. 首先先介绍几个名词: OpenDocum ...

  2. 【.net 深呼吸】项目中是否有必要删去多余的引用

    很多大伙伴们常常会苦思一个问题:项目代码中用不到的引用,是不是应该删除,以避免代码在编译后存在太多的无意义引用? 其实,这个问题,你完全可以自己去应证的,咋应证呢?知道反射吗,对了,只要你知道这玩意儿 ...

  3. hadoop系列二:HDFS文件系统的命令及JAVA客户端API

    转载请在页首明显处注明作者与出处 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6 ...

  4. Java数组练习题小结

    //2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在, ...

  5. 用Ajax实现自动刷新news功能

    这是Ajax应用的一个小实例:在页面中自动刷新功能,比如整个新闻页面中某一个小版块的内容,无需刷新整个页面就可以自动更新: 1.首先创建简单的页面元素: <body> <input ...

  6. 谈 jquery中.band() .live() .delegate() .on()的区别

    bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数 $("a").bind("click",function(){alert(& ...

  7. 【开源】NodeJS仿WebApi路由

    用过WebApi或Asp.net MVC的都知道微软的路由设计得非常好,十分方便,也十分灵活.虽然个人看来是有的太灵活了,team内的不同开发很容易使用不同的路由方式而显得有点混乱. 不过这不是重点, ...

  8. 同一环境下新建Standby RAC库

    需求:在同一个环境下新建Standby RAC库,即和Primary RAC在相同的磁盘组. 说明:生产环境一般不建议这样配置DG,因为存储层面是相同磁盘组,灾备的实际意义不大.我这里是用作读写分离. ...

  9. 阿里云开发之OSS数据迁移

    最近由于项目需求,需要将一个aliyun账号下的oss数据导入到两一个aliyun账号下的oss,经过一番坎坷,最终搞定. 1.查看oss数据迁移官方文档,我是在本地windows电脑上进行操作的,先 ...

  10. failed (1113: No mapping for the Unicode character exists in the target multi-byte code page), client: 127.0.0.1...

    nginx部署网站后,访问域名,网页显示  500 Internal Server Error ,经查看发现nginx的error.log中有报错: failed (1113: No mapping ...