java和UI接口规范Word格式.docx

上传人:b****5 文档编号:18697832 上传时间:2022-12-31 格式:DOCX 页数:10 大小:18.77KB
下载 相关 举报
java和UI接口规范Word格式.docx_第1页
第1页 / 共10页
java和UI接口规范Word格式.docx_第2页
第2页 / 共10页
java和UI接口规范Word格式.docx_第3页
第3页 / 共10页
java和UI接口规范Word格式.docx_第4页
第4页 / 共10页
java和UI接口规范Word格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

java和UI接口规范Word格式.docx

《java和UI接口规范Word格式.docx》由会员分享,可在线阅读,更多相关《java和UI接口规范Word格式.docx(10页珍藏版)》请在冰豆网上搜索。

java和UI接口规范Word格式.docx

scriptsrc="

assets/scripts/require.js"

>

/script>

Jquery插件

assets/scripts/jquery.js"

Javascript核心底层工具包

assets/scripts/v8natives.js"

3.3.2BootStrap

使用bootstrap框架进行整体的css控制和布局。

Widget模块里可以重写全局样式,生成自己的样式。

3.3.3界面排版

Index.html主要由四个widget组成:

顶端widget,树widget,主体widget,底端widget。

介绍一下如何在index.html页面上引用一个treewidget

第一步、在index.html合适的位置放置一个tree占位符。

第二部、在script脚本区域增加下面的代码就可以。

这段代码也可以放到一个js文件进行统一加载。

script>

require([

"

ts/t3/TSTree"

//通过require加载器将TSTree加载进来

],function(TSTree){

vartree=newTSTree();

//实例化一个tree对象tree.load(require.toUrl("

ts/t3/compute/platform/PlatformSummary.json"

);

//ajax初始化tree数据

tree.placeAt("

#TS_tree"

//找到index.html的占位符进行替换

window.tree=tree;

});

3.4Widget模块开发

上面说了如何引用widget,下面介绍如何开发widget

Widget现在类似java的一个类。

下面是一个简单的例子,后期会补充widgetapi开发手册。

define("

ts/t3/compute/platform/PlatformSummary"

[

"

ts/t3/TSWidget"

ts/t3/TSEvent"

dojo/text!

ts/t3/compute/platform/PlatformSummary.htm"

dojo/css!

ts/t3/compute/platform/PlatformSummary.css"

jquery"

],function(TSWidget,TSEvent,htm,css,$){

var__super__=TSWidget.prototype;

functionPlatformSummary(id,initParams){

this.templateString=htm;

__super__.constructor.call(this,id,initParams);

initParams=Object(initParams);

SetProperty(this,DONT_ENUM,"

__data__"

{

data:

null,

state:

"

});

this.addEventListener("

data"

function(event){

this.renderData(event.data);

}

functionrenderData(data){

["

platforms"

"

hosts"

lpars"

].forEach(function(key,index){

this[key].innerText=data[key];

},this.attachPoints);

functionload(url){

varthat=this;

$.ajax(url).done(function(data){

that.dataProvider=data;

ExtendClass(PlatformSummary,TSWidget);

InstallFunctions(PlatformSummary.prototype,DONT_ENUM,[

load"

load,

renderData"

renderData

]);

returnPlatformSummary;

});

3.4.1使用widget模块化开发的优势

在之前我们做一些功能的时候使用第三方插件。

看到他部分功能在对我们的项目中带来好处,随着项目的发展业务需求的变化。

第三方的插件就很难支持新的需求,就要对第三的插件进行扩展,不能扩展的只能进行源代码的修改。

ulid="

tebe_tree"

class="

ztreetree-container"

/ul>

$.fn.zTree.getZTreeObj("

面向过程的开发方式,要换成别的tree都不能换。

现在我们是顶一个Tree的Widget的模板,你可以用自己写的tree实现或者用第三方的tree控件实现。

我们定义的Tree的widget名称是TSTree。

使用方式很简单,在要是用的js里require(["

])引用进来

vartree=newTSTree();

tree.placeAt("

页面占位符id"

这样我们只要针对TSTree进行开发就可以了。

widget划分为两类:

第一类,页面基本控件widget

主要有Tree、DataGrid、Dialog、tabs、form等控件

第二类,根据基本控件widget扩展具体业务widget

例如:

platformSummary、createClusterdialog、addComponentdialog之类

4页面跳转方式

UI层的页面跳转是纯静态的跳转。

html页面跳转时,先提交到js脚本。

js脚本跳转到下一个页面,在进入页面的时候执行一个js脚本,ajax调用java接口获取数据,再由js处理数据封装html。

5widget组件的数据

5.1Summary组件数据

页面数据在页面加载时,执行js脚本请求java接口,返回数据,再由js将数据填充渲染HTML。

实例:

主机摘要页面,java接口输出的JSON数据格式

{

hostName"

:

IVM106"

hostPcid"

32c7a32d-467e-405b-808a-ffb4e239276d"

hostSn"

06056AA"

ipAddr"

172.24.23.106"

memoryAvailable"

51968,

modelType"

8246-L2D"

platformName"

platformPcid"

cfefcab2-e61d-4c44-98c5-e946099593dc"

platformType"

0"

processorsAvailable"

13.6,

pvAvailableSize"

572325,

pvTotalSize"

1144650,

state"

1"

storageAvailableSize"

932773,

storageTotalSize"

1716042,

vgAvailableSize"

360448,

vgTotalSize"

571392

}

5.2DataGrid组件数据

在页面中执行脚本创建组件,调用java接口获取数据,调用组件的load方法解析数据填充到组件中

实例:

JSON数据样本如下:

meta"

{

pageSize"

20,

pageNo"

1,

totalRows"

2,

startRow"

endRow"

totalPages"

1

},

rows"

[

{

"

id"

name"

sn"

4e2c"

ip"

},

32c7a32d-467e-405b-808a-ffb4e239276e"

IVM107"

4e2d"

172.24.23.107"

}

]

4.2树组件数据

前端UI的tree控件定义了一个标准的数据格式,用户java接口对tree进行处理:

//节点ID

pid"

//父节点ID

type"

0,//节点类型

//节点名称

title"

description"

//节点title属性

href"

module.html"

//节点链接

target"

_frame"

//节点链接的target属性

icon"

vm"

//节点的图标

test

testt

est

6AJAX操作数据

在提交操作,验证数据名称重复、pv、vg是否被使用时,通常使用AJAX调用java接口进行处理,处理结束后,将结果统一封装成MessageJson对象,转化为JSON格式输出到页面,由前台进行处理。

MessageJson的数据格式:

/**

*状态标志

*1:

真0:

*/

privateStringflag;

/**

*消息

privateStringmsg;

*获取任务集合

privateListtasks;

*数据集

@SuppressWarnings("

unchecked"

privateListitems;

7国际化设计

国际化分前端界面国际化、后台消息国际化

6.1前端界面国际化

前端国际化由客户端根据当前语言设置请求所需json,并将数据对象封装为MessageBundleAPI对象

应用范围:

+静态界面元素:

如按钮,标签,等无需依赖后台控制的

6.1.1数据载体

application/json文件如:

{"

navigator.language"

en-US"

navigator.vendor"

GoogleInc."

navigator.appName"

Netscape"

navigator.userAgent"

Mozilla/5.0..."

}

6.1.2处理程序

jsm/util/MessageBundle

6.1.3JavaScripti18nAPI

MessageBundle#getMessage(messageKey:

String,...args:

*)

6.1.4在htm模板中的用法

span>

${messageKey}<

/span>

6.2后台消息国际化

后台国际化由Web应用根据当前用户所需语言,返回相应的消息

6.2.1数据载体:

text/x-java-properties文件如:

navigator.language=en-US

navigator.vendor=GoogleInc.

navigator.appName=Netscape

navigator.userAgent=Mozilla/5.0...

6.2.2加载程序:

*内置:

java.util.ResourceBundle

*spring:

com.**.ReloadableResourceBundleMessageSource

6.2.3Javai18nAPI:

*使用内置ResourceBundle:

Stringmsg=i18n.getString(Stringkey);

[1]

内置ResourceBundleAPI属低级,或可对其进行封装,使其支持带参数替换

*使用SpringwebApplicationContext.getMessage(Stringmessagekey,Object[]args,Localelocale)

每次调用得传locale,在Action中调用时可以在BaseAction封装上述方法再调用BaseAction对应的方法,以减少代码量

6.2.4在jsp中的用法:

*使用EL:

<

${i18n["

messageKey"

]}<

[1]

*使用spring:

spring:

messagecode="

/>

[2]

注:

[1]i18n为来自session的一个ResourceBundle对象

[2]请查阅springi18n用法

7包结构

*WebRoot/

*index.html

*login.html

*assets/(存放无需后台处理的静态资源,包括jscsspngjsonwoff等)

*scripts/(js根目录,requirejs的baseUrl所在目录)

*jquery.js(第三方脚本)

*require.js(第三方脚本)

*jsm/(Web标准接口层,以及TeamsunWidget接口层)

*ts/(Teamsun的Widget实现以及实用工具类)

*widgets/

*TSWidget.js

*controls/(控件相关widgets)

*TSDataGrid.js

*TSTree.js

*containers/(容器相关widgets)

*TSDialog.js

*TSPanel.js

*navigators(导航相关widgets)

*TSTabs.js

*TSAccordion.js

*events/(存放事件类)

*TSEvents.js

*TSEventTarget.js

*TSMessageEvent.js

*TSChangeEvent.js

*TSCustomEvent.js

*util/

*styles/(样式根目录)

*t3/

*global.css(项目全局样式)

*index.css(index页面私有样式)

*login.css(login页面私有样式)

*bootstrap.css(第三方样式...)

*960grid.css(第三方样式...)

*images/

*locales/

*fonts/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1