根据ID查询
http://localhost:8080/project/studentRpc/displayStudent.json?id=1
新增
http://localhost:8080/project/studentRpc/newStudent.json?name=袁海&sex=男&grade=2&team=1&age=28&teacher=wang
根据Id删除
http://localhost:8080/project/studentRpc/11/deleteStudentById.json
分页查询
http://localhost:8080/project/studentRpc/queryPage.json?pageIndex=1
更新数据
http://localhost:8080/project/studentRpc/11/updateStudent.json?name=袁海&sex=男&grade=2&team=1&age=28&teacher=wang
模糊查询
http://localhost:8080/project/studentRpc/fuzzyQuery.json?name=王
webx 中request 对象作为单例注入的实现
http://www.bubuko.com/infodetail-708149.html
查看页面:
http://localhost:8080/project/student/studentshow.htm?pageIndex=1
生成随机验证码:
http://localhost:8080/project/registerRpc/randomPassword.json
成功案例代码下载地址
后台svn地址
http://svn.alibaba-inc.com/repos/meteora/branches/20160118_520245_crawling_1/
前台git地址
http://gitlab.alibaba-inc.com/platform/finance_meteora_two
oracle shield数据库
ERP_8036 =
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=tcp)(HOST=erpdb8036.alibabacorp.com)(PORT=1557))
)
(CONNECT_DATA=
(SERVICE_NAME=erp8036)
)
)
8035开发库 shield_app/shield8035
ERP_8035 =
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=tcp)(HOST=erpdb8035.alibabacorp.com)(PORT=1556))
)
(CONNECT_DATA=
(SERVICE_NAME=erp8035)
)
)
8036测试库 shield_app/shield8036
8035开发库 shield_app/shield8035
单元测试库 SHIELD_UTEST/shield_utest8035
Velocity
"!"用来强制把不存在的变量显示为空白。
如当页面中包含$msg,如果msg对象有值,将显示msg的值,如果不存在msg对象同,则在页面中将显示$msg字符。这是我们不希望的,为了把不存 在的变量或变量值为null的对象显示为空白,则只需要在变量名前加一个“!”号即可。
如:$!msg
sea.js
在 CMD 模块定义规范中,一个模块就是一个文件
参考文章:
https://github.com/seajs/seajs/issues/242
exports 是指向的 module.exports 的引用
module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {}
require() 返回的是 module.exports 而不是 exports
https://cnodejs.org/topic/5231a630101e574521e45ef8
sea.js 加载Handlebars模板引擎
http://blog.csdn.net/cdnight/article/details/43448941
Handlebars语法
http://segmentfault.com/a/1190000000342636?from=androidqq
{{{ 不转义 (< 转换为<)
this和event.target的区别
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;
jQuery对事件监听函数,都会默认传递一个参数,一般命名为event或e(非必须,也可以任意命名)
e,event参数中支持下列属性:
event.stopPropagation(); 停止事件冒泡的方法
event.preventDefault(); 阻止默认行为--如超链接的跳转
更简单的方式:
return false,对上面两种都起同样的作用
参考文章:http://my.oschina.net/guomingliang/blog/307813
bootstrap按钮样式和学习
http://www.jb51.net/web/249439.html
http://www.runoob.com/bootstrap/bootstrap-forms.html
前端环境搭建步骤
1.node.js安装 http://nodejs.org/download/
2.Git安装 http://git-scm.com/download (配置git参考地址http://blog.csdn.net/hsany330/article/details/24034219)
3.克隆仓库 git clone [email protected]:platform/shield.git
4.gulp的安装 npm install
npm install gulp -g
5.http-server安装 npm install http-server -g
7.在项目目录shield的父目录下面,启动前端服务器 http-server -p 80 --cors
备注:
git图文入门教程 http://rogerdudler.github.io/git-guide/index.zh.html
gitlab地址 http://gitlab.alibaba-inc.com/platform/shield
4. WebX的请求执行流程
1.对于URL:http://localhost:7001/petstore/user/account/edit.htm(htm是为了兼容过去的DOS命名格式存在的,在效果上没有区的,HTM 为DOS三字符文件扩展名时代而来;HTML为Windows时代支持多字符扩展名)
我们知道http(协议)、localhost(Server name可以在C:\Windows\System32\drivers\etc\hosts中来配置)、7001(端口号)、petstore(context path)、user(conponent path)、account/edit.htm(servlet path)、account/edit.vm(target)。
2.根据端口号,服务器把该请求交给petstore应用,再根据/account/edit.htm(Servlet Path路径)。在web.xml中把*.htm映射到Webx Controller Servlet,所以Webx Controller Servlet就接管了这个请求。
3.Webx Controller Servlet激活pipeline,而用AnalyzeURLValve分析/edit.htm是什么意思。根据webx默认的映射,/edit.htm被映射成/ edit.vm。
4.根据target查找screen模板:/screen/edit.vm,假如target的值:/xxx/yyy/edit.vm,那么,valve会:在/templates/screen目下,找到/xxx/yyy/edit.vm模板。然后依次查找screen类:xxx.yyy.Edit (如果找不到,下一个)、xxx.yyy.Default (如果找不到,下一个)、xxx.Default (如果找不到,下一个)、Default (如果找不到,下一个)、TemplateScreen (系统默screen,不可能找不到的)。
5.screen类,渲染screen模板。如果存在layout布局,渲染layout,screen类,并渲染screen模板。根据target查找layout模板,渲染layout模板。
6.渲染在layout模板中引用的两个control:head.vm:在head.car中查找/control/head.vm;bottom.vm :在bottom.car中查找/control/bottom.vm。
request请求-->>piepline解析target参数-->>表单验证-->>screen类或action类
每个模块都有对应的control, layout, screen这种结构和目录; layout是一个页面的布局即显示screen和control的内容, 一个页面只可以有且最多一个screen但可以有多个control;一个 screen中可以包含多个control;
java每个模块的包结构也要与页面的control, screen对应;特殊的如表单提交还需要action包用来处理表单提交的数据;如果请求找的是screen那么先到layout包下找与screen名称对应的layout如果没有就默认寻找default(例如找screen下的index.vm找到后就会去layout下找index.vm没有就找default.vm), 还有一点要注意如果screen页面要处理数据那么src下的模块对应的screen包中就要有与盛放screen资源页面名称对应的screen类(例如:index.vm找的就去找Index.java来处理数据返回数据可以通过context.put方法);control也是如此, 如果没有数据需要进行处理可以src下的模块的control包可以不要;
最后一种特殊的情况是没有screen页面直接请求src包下screen包下的类(相当于ajax)这种情况时请求路径不需要通过screen页面去找同名的screen类, 直接找screen类时需要在路径结尾加.json或.do
为什么数据库中的where语句不能写在order by后面
这是SQL的约定格式。从思维概念上讲: 先对数据及进行条件过滤筛选, 再对结果集合进行排序
投资测试账号:
13112345678/taobao1234
数据库设计申请
https://idb.alibaba-inc.com/
ABF
mybatis层地址
http://svn.alibaba-inc.com/repos/uyuni-api/branches/20150930_394415_reconstruction_1
web项目地址
http://svn.alibaba-inc.com/repos/uyuni/branches/20151228_493053_capital_1
工作任务
1.注册生态圈账号接口
http://localhost:8080/project/registerRpc/register.json?name=yuanhai2&mobile=15851965932&[email protected]
2.登录接口
邮箱登录
http://localhost:8080/project/loginRpc/[email protected]&passWord=GoCwuy
or
http://localhost:8080/project/loginRpc/login.json?loginName=15851965931&passWord=GoCwuy
手机登录
http://localhost:8080/project/loginRpc/login.json?loginName=15851965932&passWord=yue789
3.修改密码confirmPassword=123456
http://localhost:8080/project/loginRpc/[email protected]&&newPassword=123456&&confirmPassword=123456
1的算法明文hello1234运算出来为
9a1996efc97181f0aee18321aa3b3b12
淘宝API
淘宝账号相关API
http://baichuan.taobao.com/doc2/detail?spm=0.0.0.0.m3ehCf&treeId=40&articleId=102959&docType=1
生成账号:
http://open.taobao.com/doc2/apiDetail.htm?spm=0.0.0.0.mug569&apiId=24821
http://open.taobao.com/doc2/detail.htm?spm=0.0.0.0.oXqQG7&treeId=1&articleId=103376&docType=1
top网关,API服务地址
http://gw.api.taobao.com/router/rest
修改D:\work\uyuni\pom.xml
<dependency>
<groupId>com.taobao.baichuan</groupId>
<artifactId>openaccount.api</artifactId>
<version>0.1.3</version>
</dependency>
HSF 接口注入 hsf-bean.xml.vm
<bean id="openAccountService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" autowire="byName">
<property name="interfaceName">
<value>com.taobao.baichuan.openaccount.api.OpenAccountService</value>
</property>
<property name="version">
<value>${open_account_service_version}</value>
</property>
<property name="group">
<value>HSF</value>
</property>
</bean>
登录页面
http://docs.alibaba-inc.com:8090/pages/viewpage.action?pageId=248135891
base.xml.vm
<bean id="MyRockEnv" class="com.alibaba.uyuni.common.util.Environment">
<property name="iframeJsUrl" value="${iframe_js_url}" />
login.vm
登录js插件
<script type="text/javascript" charset="utf-8" src="$MyRockEnv.iframeJsUrl"></script>
实际显示
<script type="text/javascript" charset="utf-8" src="https://login-openaccount.daily.taobao.net/assets/js/mini-login-embedderV3.js?v=579228"></script>
iframeJsUrl
https://login-openaccount.daily.taobao.net/assets/js/mini-login-embedderV3.js?v=579228 测试环境使用
对应的 iframeUrl
https://login-openaccount.daily.taobao.net/login/mini_login.htm
生产环境
iframeJsUrl
<script type="text/javascript" charset="utf-8" src="https://login-openaccount.taobao.com/assets/js/mini-login-embedderV3.js?v=579228"></script>
iframeUrl
https://login-openaccount.taobao.com/login/mini_login.htm
mybatis不需要配置update和delete,insert的返回类型,默认返回int
<update id="update" parameterType="string">
对应的mapper
public int update(String);
声明的全局boolean变量默认值是false。