国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Ext JS的個人教學(xué)信息統(tǒng)計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2016-12-15 18:35:53李翠平
電腦知識與技術(shù) 2016年27期
關(guān)鍵詞:表單面板

李翠平

摘要:該文介紹了Ext JS的基本應(yīng)用,討論了Ext JS優(yōu)秀的外觀設(shè)計(jì),并用此框架開發(fā)了一個個人教學(xué)信息統(tǒng)計(jì)系統(tǒng),界面的設(shè)計(jì)全部使用EXT JS6.0,后臺用Java進(jìn)行數(shù)據(jù)的維護(hù),數(shù)據(jù)庫使用MySQL,該系統(tǒng)能實(shí)現(xiàn)個人信息的查詢與保存。

關(guān)鍵詞:Ext JS;面板;表單;數(shù)據(jù)提交;數(shù)據(jù)顯示

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)27-0059-03

1 概述

Ext JS是一個用javascript寫的,主要用于創(chuàng)建前端用戶界面,是一個與后臺技術(shù)無關(guān)的前端優(yōu)秀的ajax框架, 因此,可以把ExtJS用在.Net、Java、JSP等各種開發(fā)語言開發(fā)的應(yīng)用中。EXT JS開發(fā)了一系列非常簡單易用的控件及組件庫,我們只需要使用這些組件就能實(shí)現(xiàn)各種豐富多彩的UI的開發(fā),即使項(xiàng)目組沒有美工人員,也可以開發(fā)出專業(yè)的用戶界面。這些僅僅是其外在美,其還有最核心的內(nèi)在美,即JSON。JSON 為一種更輕、更友好的 Web services客戶端的格式(多采用瀏覽器的形式或訪問 REST風(fēng)格 Web服務(wù)的Ajax應(yīng)用程序的形式)。JSON和XML一樣也是一種簡單文本格式。相對于XML,它更加易讀、更便于肉眼檢查。在語法的層面上,JSON與其他格式的區(qū)別是在于分隔數(shù)據(jù)的字符,JSON中的分隔符限于單引號、小括號、中括號、大括號、冒號和逗號。每當(dāng)要統(tǒng)計(jì)個人相關(guān)信息的時候,最棘手的就是之前的信息保存問題,比如個人的教學(xué)任務(wù),每個學(xué)期都會有多個班級,這樣幾年累積下來就會有不少的數(shù)據(jù),基于此,借助EXT開發(fā)了一個小的應(yīng)用系統(tǒng),用來保存?zhèn)€人授課信息,同時對個人授課信息還能進(jìn)行簡單的查詢。此系統(tǒng)略加改造,也同樣適用于其他領(lǐng)域的個人信息記錄。

2 如何在頁面中使用Ext JS

想要在頁面中使用Ext,首先去官網(wǎng)下載安裝文件(http://www.sencha.com/products/extjs),下載完成后,會有一個壓縮文件,解壓該壓縮包,得到相關(guān)的文件和目錄,接下來在頁面中導(dǎo)入開發(fā)需要用到的文件

如果需要用到控件中的相關(guān)信息顯示中文字符(默認(rèn)顯示英文),還需要在頁面中添加如下代碼:

3 系統(tǒng)的界面設(shè)計(jì)及后臺實(shí)現(xiàn)

首先設(shè)計(jì)的是主界面,選擇的是window面板,相比較Panel面板,對于本系統(tǒng)而言window面板容器已經(jīng)足夠滿足我們的需求,用起來也較方便。效果如下圖所示:

附上具體的實(shí)現(xiàn)代碼:

function main()

{

var mywindow=Ext.create("Ext.window.Window",

{

title:"個人教學(xué)信息統(tǒng)計(jì)",

width:300,

height:200,

tools:[{type:"minimize"},{type:"maximize"}],

tbar:[{xtype:"button",text:"信息登記",menu:[{text:"登記",handler:dengji}]},{xtype:"button",text:"信息查詢",menu:[{text:"查詢",handler:chaxun}]},{xtype:"button",text:"日歷表",menu:{handler:function (){Ext.create("Ext.menu.DatePicker",{value:new Date()})}}}],

renderTo:Ext.getBody(),

html:""

})

mywindow.show();

}

接著是設(shè)計(jì)信息登記模塊,該模塊所涉及的控件比較多,所以如何對各個模塊進(jìn)行排版,是首要考慮的。在設(shè)計(jì)該模塊時,選擇了表單面板,主要是考慮到后期數(shù)據(jù)的提交較方便,而且表單面板在排版上也能滿足我們的需求。附上該模塊實(shí)現(xiàn)的效果圖:

附上部分代碼:

var bookStore = Ext.create(Ext.data.Store,

{

// 指定讀取數(shù)據(jù)的name、id字段

fields: [name , id],

data : [

{"id": 1, "name":"11軟件1班"},

{"id": 2, "name":"11軟件2班"},

{"id": 3, "name":"11軟件3班"},

{"id": 4, "name":"11軟件4班"}

]

});

var grade=Ext.create("Ext.form.ComboBox",{

name:"grade",

fieldLabel:"任課班級",

store:bookStore,

mode:"local",

triggerAction:"all",

emptyText:"請選擇任課班級",

displayField:"name",

valueField:"id"

});

//課程學(xué)時數(shù)

var classnumber=Ext.create("Ext.form.Number",{name:"numberlove",fieldLabel:"課程學(xué)時數(shù)"});

//班級人數(shù)

var studentnumber=Ext.create("Ext.form.Number",{name:"numberlove",fieldLabel:"班級人數(shù)"});

面板的組裝:

var f=Ext.create("Ext.form.Panel",{

title:"個人教學(xué)信息登記",

width:500,

autoHeight:true,

url:"FormServlet",

method:"post",

style:"padding:6px",

labelAlign:"right",

tools:[{type:"close",handler:function (){f.close()}}],

frame:true,

items:[time,name,classnumber,grade,studentnumber,information],

buttons:[

{xtype:"tbfill"},

{

text:"保存",

handler:function (){

f.getForm().submit(

{

url:save.jsp,

success:function (){Ext.Msg.alert("成功","恭喜您,提交成功!")},

failure:function (){Ext.Msg.alert("失敗","對不起,表單提交失敗")}})

}

}

在設(shè)計(jì)該模塊時,充分利用了EXT JS的的表單元素驗(yàn)證功能,實(shí)現(xiàn)用戶名和密碼不能為空以及用戶名和密碼的格式驗(yàn)證。比如對于授課時間的格式設(shè)置,首先授課時間不能為空的驗(yàn)證可以方便的實(shí)現(xiàn),同時還可以設(shè)置授課時間的輸入格式。

最后設(shè)計(jì)的是查詢模塊,該模塊首先是界面設(shè)計(jì),這部分的設(shè)計(jì)比較簡單,主要實(shí)現(xiàn)放在了后臺數(shù)據(jù)庫及java的連接上。該功能的實(shí)現(xiàn)選擇了MVC模式,這樣可以充分的將頁面設(shè)計(jì)部分與數(shù)據(jù)處理分離開,這樣后期如果想將該系統(tǒng)應(yīng)用在其他領(lǐng)域也很容易實(shí)現(xiàn)?,F(xiàn)摘錄部分主要實(shí)現(xiàn)數(shù)據(jù)庫連接與操作代碼:

//傳遞sql語句,返回受影響的行數(shù)

public int executeUpdate(String sql) throws SQLException,

ClassNotFoundException, IOException {

if (st == null)

getStatement();

int h = st.executeUpdate(sql);

return h;

}

//傳遞sql語句,返回查詢的結(jié)果集

public ResultSet executeQuery(String sql) throws SQLException,

ClassNotFoundException, IOException {

if (st == null)

getStatement();

ResultSet rs = st.executeQuery(sql);

return rs;

}

private void insert(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String time=request.getParameter("time");

String name=request.getParameter("name");

String grade=request.getParameter("grade");

String classnumber=request.getParameter("classnumber");

String studentnumber=request.getParameter("studentnumber");

String information=request.getParameter("information");

TeachingInfo info=new TeachingInfo();

info.setTime(time);;

info.setName(name);

info.setGrade(grade);

info.setClassnumber(classnumber);

info.setStudentnumber(Integer.parseInt(studentnumber));

info.setInformation(information);

TeachingInfoDao dao=new TeachingInfoDao();

boolean flag;

try {

flag = dao.insertOne(info);

if(flag)

{

PrintWriter out=response.getWriter();

out.print("{success:true,msg:信息保存成功}");

}

} catch (ClassNotFoundException | SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

在進(jìn)行查詢信息輸出時,需要將JSON格式的數(shù)據(jù)轉(zhuǎn)換為字符串輸出,在Ext JS中,可以使用如下方式進(jìn)行轉(zhuǎn)換

json方法應(yīng)用:decode:將json字符串轉(zhuǎn)換為對象,encode:將對象轉(zhuǎn)換為json字符串

var Mystrjson="{Name:陳建強(qiáng),Sex:男,Age:26,Married:false}";

//第一json字符串

var Myobjson=Ext.decode(Mystrjson);

//將json字符串轉(zhuǎn)換為對象

Myobjson.Name;//使用json對象屬性

var Mystrjson2=Ext.encode(Myobjson);//將json對象轉(zhuǎn)換為json字符串 其中Mystrjson=Mystrjson2

4 結(jié)束語

本系統(tǒng)的使用能基本上滿足個人信息的保存,解決了個人信息簡單并且長期保存的問題。在同事使用過程中得到了一定的肯定。該系統(tǒng)可以基于網(wǎng)絡(luò)進(jìn)行訪問,系統(tǒng)中后續(xù)還可以在添加相關(guān)的個人信息管理功能,滿足個人工作信息和生活信息的相關(guān)處理。

參考文獻(xiàn):

[1] 李鋼.瘋狂Ajax講義[M]. 3版. 北京:電子工業(yè)出版社,2013.

[2] 趙俊峰,姜寧.Java Web應(yīng)用開發(fā)案例教程——基于MVC模式的JSP+Servlet+JDBC和AJAX[M]. 北京:清華大學(xué)出版社,2013.

[3] 王電鋼 劉孫俊.Java Web應(yīng)用開發(fā)技術(shù)[M]. 北京:人民郵電出版社,2012.

[4] 王維虎,宮婷.網(wǎng)頁設(shè)計(jì)與開發(fā)HTML、CSS、JavaScript[M]. 北京:人民郵電出版社,.

[5] 傳智播客高教產(chǎn)品研發(fā)部.HTML+CSS+SjavaScript網(wǎng)頁制作案例教程[M]. 北京:人民郵電出版社, 2015.

[6] Jesus Garcia.Ext JS實(shí)戰(zhàn)[M]. 北京:人民郵電出版社, 2012.

[7] 鐘協(xié)良.Ext JS開發(fā)實(shí)戰(zhàn)[M]. 北京:清華大學(xué)出版社, 2012.

[8] 張鑫,黃燈橋.JavaScript凌厲開發(fā)——Ext JS3詳解與實(shí)踐[M].北京:清華大學(xué)出版社, 2010.

猜你喜歡
表單面板
面板燈設(shè)計(jì)開發(fā)與應(yīng)用
電子表單系統(tǒng)應(yīng)用分析
華東科技(2021年9期)2021-09-23 02:15:24
MasterCAM在面板類零件造型及加工中的應(yīng)用
模具制造(2019年4期)2019-06-24 03:36:50
淺談網(wǎng)頁制作中表單的教學(xué)
軟巖作為面板堆石壩填筑料的探討
Photoshop CC圖庫面板的正確打開方法
面板塑件凸轂結(jié)構(gòu)優(yōu)化及模具設(shè)計(jì)
基于ASP.NET的Web表單自動生成引擎
高世代TFT-LCD面板生產(chǎn)線的產(chǎn)能評估
基于Infopath實(shí)現(xiàn)WEB動態(tài)表單的研究
電子世界(2012年24期)2012-12-17 10:49:06
射阳县| 繁峙县| 汕尾市| 五台县| 咸宁市| 高密市| 洛阳市| 沂水县| 巨野县| 淮北市| 青河县| 龙海市| 元谋县| 读书| 徐闻县| 班玛县| 绍兴县| 灵山县| 隆化县| 阿尔山市| 大新县| 龙里县| 和林格尔县| 平舆县| 平武县| 蚌埠市| 广昌县| 吴忠市| 清丰县| 原阳县| 乳山市| 乌拉特中旗| 辉南县| 武邑县| 迭部县| 新田县| 柏乡县| 襄城县| 北海市| 阳江市| 仲巴县|