版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
SSH項授課 學習的重搭建SSH開發(fā)環(huán)創(chuàng)建實體類的說實現(xiàn)功能-用戶登錄說明(包括對用戶名和的校驗畫出用戶登錄模塊的程序框架將登錄頁面顯示出當用戶時可以看到登錄頁css/js/image將需要的 script文件夾拷貝 項目的配置strurt.xml文件將表單修改成實現(xiàn)功能-對輸入的用戶名和進行校驗(前端當用戶輸入用戶名,提交后,先端進行校驗,校驗的規(guī)則有項目經(jīng)理說明PS:只要在公司做項目涉及到表單的提交,需要有前端和的校驗否則不符合規(guī)范jquery+jsindex.jsp在點擊input里面的submit它包含了form所有元素,這里排除了如何解決第一次請求頁面,不加載的問題和分因為我們使用struts獲取contextpath時,會帶上sessionid值如 端驗證用戶名的的字符串滿足自己需求-正則表達式[js/java正則表達式布置一個任務:就是把js的正則表達式技術1個多小時學下實現(xiàn)功能-對輸入的用戶名和進行校驗[]/先創(chuàng)建實體的校驗代碼,然后直接請求,就你了使用struts2提供的字段校驗機制,完成 的校驗struts2struts2Action和類創(chuàng) Employee和Department實并對應生成了xx.hbm.xx.hbm.xmlhibernate.cfg.xml運行了項目,首頁面,就生成了對應的實現(xiàn)功能-對輸入的用戶名和進行校驗[]/完EmployeeAction.java重點就是編寫login方法和prepareLoginEmployee-valiation.xmlstruts-\apps\struts2-blank\WEB-INF\src\java\example拷貝了一份Login-validation.xmlShort-circuit=true:表單提交后會先被驗證 ,進行驗證,如果通過就到Action中有prepareXxx和getModel,會將employee對象壓入棧頂,然后同過params器同過employee實體類的相應的屬性的get和set方法,將表單值賦值給棧頂?shù)牡膶傩?,將密session配置資源文件 .properties,自己將一個英文對應的資源文件struts.xml我們修改,把fielderror.ftl修改,直接使用[前端人員實現(xiàn)功能-到數(shù)據(jù)庫對用戶名和進行驗證,并提示驗證錯誤信即如下頁面://這是創(chuàng)建一個對象,然后getModel方將model對象壓入棧頂struts.xml在資 .properties文件中,加入信息提Struts2action,強制解析,將異常錯誤信息從棧頂拿出來,如果將異常進行,就可以輸出中實現(xiàn)功能-顯示管理頁當用戶登錄成功后,可以看到的管理頁面,菜單導jquery-easyUI把需要的頁面common 將manage.jsp拷貝你的項目的pages/下實現(xiàn)功能-員工管理頁面顯actiontree_date1.jsonEmployeeActionstruts.xml指定list為了防止EmployeeAction-valiation.xml對其它方法,我們修改了名稱EmployeeAction-employee_login-validation.xml,這個時候只會login方法的運*明天的任js關于學習項目的一個建管理功能之-能夠?qū)⑺袉T工的信息從數(shù)據(jù)表中取編寫了request管理功能之-能夠?qū)⑺袉T工的信息從數(shù)據(jù)表中取出,并實現(xiàn)分頁顯MyPage//上面之所以會出現(xiàn)當前頁面是零.原因:將myPage類中的屬性賦值給對象棧棧頂?shù)腶ction中的myPage屬性的pageNow屬性getXXX方法,沒有使用setXXX方法.所setXXXpageNowgetsetMyPagelist1.jsp點擊超實現(xiàn)分頁效功能:就是當用戶點擊超實現(xiàn)動態(tài)分頁效Struts2OGNLValueStack中取值/賦值,ELPage、Request、SessionApplicationStruts2的項目中,jsp頁面可以直接使用${username}ActionusernameOGNL表達式獲取root對象屬性的使用方法一樣,這是為什么呢?過的org.apache.struts2.dispatcher.StrutsRequestWrapper對象。EmployeeDao.javalongintStringEmployeeServiceEmployeeActionlist1.jspStruts2isXxxgetXXX名.這個方法名都是方法后的名字.test是從值棧中獲取的.超是指定要了action方法,以及要傳遞的參數(shù).當時在頁面點擊后要自動跳轉,就要添加點擊.ELognlstrut2一個小的技巧分eclipse運行一段時間后,會錯"PermGenspace菜單->run->runconfiguration->argurments加入:-Xms256m-Xmx512m-XX:MaxNewSize=256m-程序的一個bug-關于驗證可以分頁顯示員工信息,轉到指定的提示。使用jquery完成這個功能,捕獲輸入框的change.編寫相應的代碼即可這個函數(shù)會調(diào)用執(zhí)行綁定到change的所有函數(shù),包括瀏覽器的默認行為??梢酝ㄟ^在某個綁定的函數(shù)中返回false來防止觸發(fā)瀏覽器的默認行為。change會在元素失jQuery代碼 o,howareyou?在list1.jsp加入處理代碼jquery代碼 使用$().ready()的簡寫,同時內(nèi)部的jQuery代碼依然使用$作為別名,而不管全局的$為何。jQuery通過使用這個方法,可以在DOM載入就緒能夠并時立即調(diào)用你所綁定的函數(shù),99.99%JavaScript$(function($)$(function($)//你可以在這里繼續(xù)使用$this.value獲取domtextradiocheckboxselectthis表示引起的對象,也就是那個SELECT對象,value就是onchange發(fā)生test()truefalse。實現(xiàn)功能-刪除某個員工(先實現(xiàn)刪除的效果ajaxmanagermanager使用 ,同時請求需要發(fā)送給EmployeeAction.java的delete方法參數(shù)是String.id從頁面獲取直接是String.獲取地址也是String,所以用引號括起來,同時要加問的actionConfirm可以將指定內(nèi)出頁面,如果點擊確定,返回true,點擊取消,返回PostPOST$.ajax如果需要在出錯時執(zhí)行函數(shù),請使用$.ajax。輸出來自請求頁面test.php的結果(HTML或XML,取決于所返回的內(nèi)容$.post("test.php",$.post("test.php",function(data){alert("DataLoaded:"+data);jQueryvaljQuery ojQuery$("#myELement")idmyElement,idmyElement$("div")選擇所有的div元素,返回div元素數(shù)$(".myClass")myClasscss$("*")選擇文檔中的所有的元素,可以運用多種的進行聯(lián)合選擇:例$("forminput")forminput$("#main>*")idmain$("labelinput")labelinput是label后面直接跟一個input的所有input元素$("#prev~div")同胞選擇器,該選擇器返回的為id為prev的元素的所有的屬于同一div基本過濾選擇器$("tr:first")tr$("tr:last")tr$("input:not(:checked)+span")過濾掉:checkedinput$("tr:even")選擇所有的tr元素的第 個元素(注意:因為所選擇的多個0$("tr:odd")選擇所有的tr元素的第 個元$("td:eq(2)")td2td$("td:gt(4)")td4td$("td:ll(4)")td4td$(":header")h1,h2,h3$("div:animated")$("div:contains('John')")divJohn$("td:empty")選擇所有的為空(也不包括文本節(jié)點)td$("div:has(p)")選擇所有含有p的div元$("td:parent")td$("div:hidden")hiddendiv$("div:visible")div$("div[id]")iddiv$("input[name='newsletter']")name'newsletter'input$("input[name!='newsletter']")name'newsletter'input$("input[name^='news']")name'news'input$("input[name$='news']")name'news'input$("input[name*='news']")name'news'input$("input[id][name$='man']")idnameman子元素過濾選擇$("ulli:nth-child(2)"),$("ulli:nth-child(odd)"),$("ulli:nth-child(3n+$("divspan:first-child")divspan$("divspan:last-child")divspan$("divbutton:only-child")divbutton表單元素選擇器$(":input")input,textarea,select和$('input:text')inputtextinput$('input:password')inputpasswordinput$('input:radio')inputradioinput$('input:checkbox')inputcheckboxinput$('input:submit')inputsubmitinput$('input:image')inputimageinput$('input:button')inputbuttoninput$('input:file')inputfileinput$("input:hidden")inputhiddeninput$(":enabled")$(":disabled")$(":checked")checked$("selectoption:selected")selectselectedEmployeeAction.java實現(xiàn)功能-刪除某個員工(再將這個員工的isDelete字段設置isDelete1date的返回值從值棧中獲取的,它獲取的值要有get和set方法,另外還有在Struts2中Struts2selectedHTMLo</span></div><pojQuerysetsessionflushDepartmentEmployeeEmployee練習10-顯示部門信list1.jspsessionOpenSessionInViewFilterstruts2實現(xiàn)ajax的無刷新分頁效果[難點大一點功能當用戶點擊分頁超時,實現(xiàn)是一個ajax請求,到json數(shù)據(jù),更新雇員信息代碼list_ajax.jsp頁面[ajax無刷新的技術list_ajax.jspajaxstruts.xml看到的效果是,正確的得到jsonidbean把返回的json數(shù)據(jù),顯示在頁面,并可以分功能將請求到json格式的數(shù)據(jù)進行處理,顯示在頁面,并實現(xiàn)分頁顯示思路Jsongetget后面的方法作為鍵,將返回值最為值放到集合里面.如果沒有在部門里面獲取它的部門名稱,json是獲取不到,還有它的時間格式需要轉換在頁面的時候,因為有判斷.所以在最后一頁的時候不在跳轉.json的沒有進行最后一頁的判斷.所以當?shù)阶詈笠豁摰臅r候會不會判斷,還會直接獲取下一個頁面.因為沒有下一頁所以會出現(xiàn)上面的.代碼 接管//jsp頁面換成jsonHTML文檔中,.html()的元素,那么只有第一個匹配元素的HTML內(nèi)容會被獲取。pjQuery代碼pjQuery代碼: jQuery代碼 returnpindex是:n注意:上面的span前的斜杠刪除或者打一個空格,$()>是先創(chuàng)建一個jQuery對象,然后給這個對象綁//在獲取部門信息,如果是從值棧中獲取,他會通過級聯(lián)關系查找部門信息.如果是在json數(shù)據(jù)中無法通過級聯(lián)方式獲取部門信息.employeeget方法獲取,json數(shù)據(jù)會將數(shù)據(jù)封裝成(名稱/值).getXXX的名字,get方法的返回值$("p").append("<b>$jQuery“類”的一個別稱,$()jQuery對象。所以,“$()jQuery的構造$("<div><p>$JQuery"選取"selectorJQueryfunction()html()HTML元素的內(nèi)容(innerHTML)jQuery代碼$("img").attr({src:"test.jpg",alt:"TestImage"HTML代碼<p>o, </span><a </a></p>jQuery代碼效果點擊ajax的刪除超后,可以刪除這個員這個ajax功能花了很長的時間沒有時間是因為添加么么么的單詞拼寫錯誤.這個功能的實現(xiàn):能的絕顯示添加員工頁面(沒有部門和角色功能:[暫時沒有部門和角色功能:代碼實現(xiàn):[我們運行就得到了5的表,具體的關系如騰飛辦公系統(tǒng)數(shù)據(jù)庫.txt編寫編寫將部門信息放到request與中是為了在頁面的select中自動回顯,要明白select的屬性作listKey和listlike:listkey隊形與select中的value,listvalue對應于select中顯示的選項.name屬性Select并不會提交數(shù)據(jù),必須包含在form里面一起提交.istKey是作為參數(shù)提交的Select顯示集合里面的所有信息.listKey是它的id,listvalue是他的name.這些都是部門中的信息.name屬性規(guī)定了這些信息要傳遞給誰.department.departmentId:在傳遞參數(shù)的時候?qū)⒉块T信息傳遞給Employee對應的部門里面,listKey的值.Struts2name jquery和weebox里面寫的keyvalue需要將Employee類和Role類關聯(lián)形成多對多思路:EmployeeEmployee.hbm.xml文件,Employee.java中增加一個屬性roles效果當用戶輸入的員工信息都正確就加入到數(shù)據(jù)功能:思路Employee.java一般出現(xiàn)esltit數(shù)是tig,.,先創(chuàng)建一個eXX方法到這個方法里面,然后在里面完成轉換后,將轉換后的結果賦值給持久類中的屬性.表單提交的數(shù)據(jù)是調(diào)用tXXX賦值的.SelectselectroleId的原因在下面的圖里面Role在數(shù)據(jù)庫中已經(jīng),在Employee中的Role集合中的對象值了它的id,根據(jù)關聯(lián)關系,在Employeeroleid就獲取他的完整記錄ajax的驗證是合法,到服務器還要驗證,還需代碼現(xiàn)在服務器使用struts2驗證器(驗證框架),到在驗證錯誤信息的輸出:首先配置驗證器,然后通過進行語言轉換然后通過input輸出到指定的頁面.取出的方法是:<s:propertyvalue=”[1].error[‘loginName’]”/>strut.xml修改員工的數(shù)據(jù)-能夠回顯員工的信[編寫對員工信息修改-正式修思路問題?如何防止用戶提交數(shù)據(jù)問題[驗證框架],控制修改時,將沒有提交的字段對應的屬性置空講解一下java如何操控excel文件[實用的技術javapoiexcelpoi文檔,幫助手冊(poiindex.html進入后步驟:打開index.html->HSSFandXSSFforExcel s->theHSSF+XSSFproject>QuickGuide快速案poi開發(fā)需要的jar包程序員韓順平SSH1023 第一部分\課件\java操作excel文件技術-poi\required\下的jar包全部引入即可。ss.usermodel如果通過一個xls文件=》 ==》workbook=>現(xiàn)可以從服務器一個已經(jīng)存在的文件功能:我們在服務的webcontent/file文件夾下放一個文件,比如test.xls文件,點擊超,就可以將該文件下來思路:學習過struts2如何文件的方法,就是使用它即可streamresulttype編寫了struts.xml實現(xiàn)以excel文件形式員工信息-從數(shù)據(jù)庫中存在員工功能:先將excel文件和上傳excel文件的頁面顯示出來,并且點擊文件超后,可以或者excel文件思路代碼配置器實現(xiàn)上傳員工的信息,完成批量添加員功能用戶上傳填好的xls文件,校驗數(shù)據(jù)數(shù)據(jù)有沒有問上傳文件->workbook->解析->row->employee[list<String[]>],然后判斷錯誤的tree_date1.json,配置了一下 測試成功emp_uploadUI.jspstruts.xml做了fileuploadinterceptor器的配在資源文件我們加入了信jsp頁面加入了一個顯示錯誤的,返回第幾行第幾列錯誤.實現(xiàn)功能-抽取Base類,提高代碼復用可以為各層抽取一個Base類,使用泛型的依賴注入,提高代碼的復用性.DaoBaseDao<T>,ServcieBaseService<T>代碼第一部分(Dao我們先引入一個功能強大的反射類[使用,是網(wǎng)路提供一個工具類]引入jar包:4.package4.package6.importimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassBaseDao<T>{privateSessionFactorypublicSessiongetSession(){ return //表示一個實體類的類型屬privateClassentityClass;//編寫一個構造器,對entityClass初始化工作,使用工具類publicBaseDao()entityClass= //編寫一個通用方法,就是通過屬性來獲取對應的對//QBC方法publicTgetBy(StringproName,ObjectproVal){//使用//創(chuàng)建一個Criteria對Criteriacriteria=//創(chuàng)建一個條件,根據(jù)傳入的屬性,創(chuàng)建一個eq條件這里使//Criterion接口來接收對Criterioneq=Restrictions.eq(proName,//如果下面的方法查詢不到,就會返回一個null,如果return(T) //獲取所有部門的信publicList<T>Criteriacriteria=return publicMyPage<T>list(MyPage<T>myPage){//可以得到myPage對象的totalNum值inttotalNum=//獲取到內(nèi)容,單獨的寫一個方法來List<T>content=return //編寫一個方法,獲取到實體類的id的屬性publicStringgetIdName(){ClassMetadataclassMetadata BaseDao,下面這樣方法修改//使用QBC的方法來獲取記錄publicinttotalNum(){//1.創(chuàng)建一個Criteria接Criteriacriteria=//2.獲取當前這個實體類的id(主鍵)的屬性StringidProName=//3.創(chuàng) 接條Projectionprojection=//4.將這個連接條件加入到 //將myPage對象需要的當前的數(shù)據(jù)publicList<T>//從哪里開始intfirstResult=(myPage.getPageNow()-*intmaxResult=CriteriacriteriaList<T>content=return //添加一個保存員工的publicvoidsave(T //添加一個保存員工的publicvoidupdate(T //批量加入publicvoidbatchAdd(List<T>entities){ for(inti=0;i<entities.size();i++){//取出雇Tentity=//如果用戶很多,需要定時對session進行刷if((i+1)%100== 140.DaoBaseDao,測試通過=>Serivcepackagepackageimportimportjava.util.Map;erceptor.SessionAware;importimportcom.opensymphony.xwork2.ModelDriven;importpublicclassBaseAction<T>extendsprotectedT// protectedStringcontentType;protectedLongcontentLength;protectedInputStreaminputStream;protectedStringpublicStringgetContentType(){returncontentType;}publicvoidsetContentType(StringcontentType){this.contentType=contentType;}publicLonggetContentLength(){returncontentLength;}publicvoidsetContentLength(LongcontentLength){this.contentLength=contentLength;}publicInputStreamgetInputStream(){returninputStream;}publicvoidsetInputStream(InputStreaminputStream){this.inputStream=inputStream;}publicStringgetContentDisposition(){returncontentDisposition;}publicvoidsetContentDisposition(StringcontentDisposition){this.contentDisposition=contentDisposition;}protectedFilepublicvoidsetFile(Filefile){this.file=file;}publicvoidprepare()throwsException//TODOAuto-generatedmethod}publicTgetModel()//TODOAuto-generatedmethodstubreturnmodel;}protectedMap<String,Object>sessionMap;publicvoidsetSession(Map<String,Object>arg0)//TODOAuto-generatedmethodstubsessionMap=arg0;}protectedMap<String,Object>requestMap;publicvoidsetRequest(Map<String,Object>arg0)//TODOAuto-generatedmethodstubrequestMap=arg0;}}實現(xiàn)功能-完成查詢分頁功能[先可以彈出輸入功能list1.jsplist_query.jsplist_query.jsp,功能:當用戶輸入查詢條件后,點擊提交,可以獲取查詢結果(這時還沒有帶入條件),再重新點擊查詢超還可以繼續(xù)看到.思路emp_queryUI.jspqueryList思路(1)查詢條件的字符串也拼接到emp_queryUI.jsp的超鏈strut2beanbean的屬性就是和查詢queryUIqueryFromBean,并將它壓入到值棧頂,queryFromBean有提交的數(shù)據(jù)(從超過來的)運行成功完成分頁查詢功能(實現(xiàn)可以返回查詢的結果功能:當用戶輸入具體的查詢信息后,比如,就查詢到這個人,比如輸入查詢"男",就返回所有男思路能夠顯示出角色和權限的管理頁功能:當用戶點擊角色錄入超時,就可以看到對應的角色和權限的頁面--加入資源[可以哪些 直個模板即可.PS:拷貝時,因為模板之間有相互的關系,需要把其它的模板都拷貝過來jsp實現(xiàn)選擇權限名下拉框可以切換子權限信功能:修改了一下能夠?qū)T工登錄的功能使用springsecurity來完功能:要求使用springsecurity完成對用戶的驗證,當用戶輸入的用戶名和都正確時,我們才進入到管理頁面,否則,返回登錄頁面.要求驗證的就是md5+slat(username)走代碼springsecurityjar包springsecurity和他需要的jar包\jar包\在web.xml文件中,配置springsecurity的過濾器id=1zfjack分配一個管理員權限[后面可以修改看變化]ins
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木制玩具設計與制造木工分包合同范本4篇
- 2025年度內(nèi)墻膩子施工技術培訓與推廣合同2篇
- 二零二五年度全國連鎖培訓學校股權合作框架合同
- 課題申報參考:岷江流域西南官話語法內(nèi)部差異及歷史演變研究
- 2025版二零二五年度教育信息化項目實施合同范本3篇
- 二零二五年度工業(yè)用地面積調(diào)整補充合同4篇
- 二零二五年度農(nóng)民工就業(yè)創(chuàng)業(yè)扶持政策合作協(xié)議2篇
- 2025年度國產(chǎn)嬰幼兒奶粉品牌全國分銷合同4篇
- 基于大數(shù)據(jù)分析的2025年度農(nóng)產(chǎn)品市場需求預測合同2篇
- 二零二五年度住宅室內(nèi)軟裝搭配合同4篇
- 《社區(qū)康復》課件-第三章 社區(qū)康復的實施
- 胰島素注射的護理
- 云南省普通高中學生綜合素質(zhì)評價-基本素質(zhì)評價表
- 2024年消防產(chǎn)品項目營銷策劃方案
- 聞道課件播放器
- 03軸流式壓氣機b特性
- 五星級酒店收入測算f
- 大數(shù)據(jù)與人工智能ppt
- 人教版八年級下冊第一單元英語Unit1 單元設計
- GB/T 9109.5-2017石油和液體石油產(chǎn)品動態(tài)計量第5部分:油量計算
- 邀請函模板完整
評論
0/150
提交評論