WebX框架学习笔记之二----框架搭建及请求的发起和处理
框架搭建
执行环境: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框架学习笔记之二----框架搭建及请求的发起和处理的更多相关文章
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...
- Go学习笔记(二)搭建Visual Studio Code调试环境
上一篇 Go学习笔记(一)安装Go语言环境 安装Visual Studio Code 这是目前我觉得最好用的文本编辑器了, https://code.visualstudio.com/ 中间有几部确认 ...
- Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0
以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基于先前的工作经验,决定用较新版本的技术来 ...
- SSM框架学习笔记_第1章_SpringIOC概述
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念 ...
- X-Cart 学习笔记(二)X-Cart框架1
目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 四.X- ...
- Spring框架学习笔记(8)——spring boot+mybatis plus+mysql项目环境搭建
之前写的那篇Spring框架学习笔记(5)--Spring Boot创建与使用,发现有多小细节没有提及,,正好现在又学习了mybatis plus这款框架,打算重新整理一遍,并将细节说清楚 1.通过I ...
- phalcon(费尔康)框架学习笔记
phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构 pha ...
- JavaSE中Map框架学习笔记
前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...
- JavaSE中线程与并行API框架学习笔记1——线程是什么?
前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...
随机推荐
- 蓝桥网试题 java 入门训练 序列求和
---------------------------------------------------------------------------------------------------- ...
- C++编程练习(16)----“排序算法 之 快速排序“
快速排序 基本思想: 通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的. 算法介绍: 设要排序的 ...
- 性能秒杀log4net的NLogger日志组件(附测试代码与NLogger源码)
NLogger特性: 一:不依赖于第三方插件和支持.net2.0 二:支持多线程高并发 三:读写双缓冲对列 四:自定义日志缓冲大小 五:支持即时触发刷盘机制 六:先按日期再按文件大小滚动Rolling ...
- sessionstorage,localstorage和cookie之间的区别以及各自的用法
由于年前辞了自己的工作,年后又开始重新找工作,参加了好几次面试,居然都遇到了同样的面试题:sessionstorage,localstorage和cookie之间的是区别? 当然,在面试的时候答的也不 ...
- Android注解学习(1)
对于注解这个概念刚开始不是很理解,翻阅了其他人博客,参考实现的例子开始理解与运用.以前刚开始的写android项目时,一般找定义控件并初始化控件都是调用findviewbyId,然而当一个布局页面(类 ...
- iOS企业版APP分发上线流程和注意事项
0.准备 1]$299/year的企业级开发账号. 2]制作分发证书和描述文件,并下载安装到本机. 3]Xcode编译通过,真机测试通过的源码. 1.打包前配置 1]Xcode 打开项目,common ...
- oracle用户创建,连接,删除
绕过管理员身份进行登录: sqlplus /nolog conn /as sysdba 如何创建一个普通用户: 1.create user jsd1412 identified by jsd1412 ...
- 归纳篇(一)CSS的position定位和float浮动
近期会更新一系列博客,对基础知识再度做个巩固和梳理. 一.position定位 (一):position的属性 1.absolute:生成绝对定位的元素,相对于最近一级定位不是static的父元素来进 ...
- Django实现用户注册登录
学习Django中:试着着写一个用户注册登录系统,开始搞事情 =====O(∩_∩)O哈哈~===== ================= Ubuntu python 2.7.12 Django 1. ...
- vc release模式设置断点调试
在VC release模式做如下设置:在 工程->属性->c/c++->常规->调试信息格式选择 -> 程序数据库(/Zi) 在 工程->属性->链接器-&g ...