框架笔记tfedu我们讲项目和学习的核心在什么地方_第1页
框架笔记tfedu我们讲项目和学习的核心在什么地方_第2页
框架笔记tfedu我们讲项目和学习的核心在什么地方_第3页
框架笔记tfedu我们讲项目和学习的核心在什么地方_第4页
框架笔记tfedu我们讲项目和学习的核心在什么地方_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SSH项授课 学习的重搭建SSH开发环创建实体类的说实现功能-用户登录说明(包括对用户名和的校验画出用户登录模块的程序框架将登录页面显示出当用户时可以看到登录页css/js/image将需要的 script文件夹拷贝 项目的配置strurt.xml文件将表单修改成实现功能-对输入的用户名和进行校验(前端当用户输入用户名,提交后,先端进行校验,校验的规则有项目经理说明PS:只要在公司做项目涉及到表单的提交,需要有前端和的校验否则不符合规范jquery+jsindex.jsp在点击input里面的submit它包含了form所有元素,这里排除了如何解决第一次请求页面,不加载的问题和分因为我们使用struts获取contextpath时,会带上sessionid值如 端验证用户名的的字符串满足自己需求-正则表达式[js/java正则表达式布置一个任务:就是把js的正则表达式技术1个多小时学下实现功能-对输入的用户名和进行校验[]/先创建实体的校验代码,然后直接请求,就你了使用struts2提供的字段校验机制,完成 的校验struts2struts2Action和类创 Employee和Department实并对应生成了xx.hbm.xx.hbm.xmlhibernate.cfg.xml运行了项目,首页面,就生成了对应的实现功能-对输入的用户名和进行校验[]/完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方法,将表单值赋值给栈顶的的属性.,将密session配置资源文件 .properties,自己将一个英文对应的资源文件struts.xml我们修改,把fielderror.ftl修改,直接使用[前端人员实现功能-到数据库对用户名和进行验证,并提示验证错误信即如下页面://这是创建一个对象,然后getModel方将model对象压入栈顶struts.xml在资 .properties文件中,加入信息提Struts2action,强制解析,将异常错误信息从栈顶拿出来,如果将异常进行,就可以输出中实现功能-显示管理页当用户登录成功后,可以看到的管理页面,菜单导jquery-easyUI把需要的页面common 将manage.jsp拷贝你的项目的pages/下实现功能-员工管理页面显actiontree_date1.jsonEmployeeActionstruts.xml指定list为了防止EmployeeAction-valiation.xml对其它方法,我们修改了名称EmployeeAction-employee_login-validation.xml,这个时候只会login方法的运*明天的任js关于学习项目的一个建管理功能之-能够将所有员工的信息从数据表中取编写了request管理功能之-能够将所有员工的信息从数据表中取出,并实现分页显MyPage//上面之所以会出现当前页面是零.原因:将myPage类中的属性赋值给对象栈栈顶的action中的myPage属性的pageNow属性getXXX方法,没有使用setXXX方法.所setXXXpageNowgetsetMyPagelist1.jsp点击超实现分页效功能:就是当用户点击超实现动态分页效Struts2OGNLValueStack中取值/赋值,ELPage、Request、SessionApplicationStruts2的项目中,jsp页面可以直接使用${username}ActionusernameOGNL表达式获取root对象属性的使用方法一样,这是为什么呢?过的org.apache.struts2.dispatcher.StrutsRequestWrapper对象。EmployeeDao.javalongintStringEmployeeServiceEmployeeActionlist1.jspStruts2isXxxgetXXX名.这个方法名都是方法后的名字.test是从值栈中获取的.超是指定要了action方法,以及要传递的参数.当时在页面点击后要自动跳转,就要添加点击.ELognlstrut2一个小的技巧分eclipse运行一段时间后,会错"PermGenspace菜单->run->runconfiguration->argurments加入:-Xms256m-Xmx512m-XX:MaxNewSize=256m-程序的一个bug-关于验证可以分页显示员工信息,转到指定的提示。使用jquery完成这个功能,捕获输入框的change.编写相应的代码即可这个函数会调用执行绑定到change的所有函数,包括浏览器的默认行为。可以通过在某个绑定的函数中返回false来防止触发浏览器的默认行为。change会在元素失jQuery代码 o,howareyou?在list1.jsp加入处理代码jquery代码 使用$().ready()的简写,同时内部的jQuery代码依然使用$作为别名,而不管全局的$为何。jQuery通过使用这个方法,可以在DOM载入就绪能够并时立即调用你所绑定的函数,99.99%JavaScript$(function($)$(function($)//你可以在这里继续使用$this.value获取domtextradiocheckboxselectthis表示引起的对象,也就是那个SELECT对象,value就是onchange发生test()truefalse。实现功能-删除某个员工(先实现删除的效果ajaxmanagermanager使用 ,同时请求需要发送给EmployeeAction.java的delete方法参数是String.id从页面获取直接是String.获取地址也是String,所以用引号括起来,同时要加问的actionConfirm可以将指定内出页面,如果点击确定,返回true,点击取消,返回PostPOST$.ajax如果需要在出错时执行函数,请使用$.ajax。输出来自请求页面test.php的结果(HTML或XML,取决于所返回的内容$.post("test.php",$.post("test.php",function(data){alert("DataLoaded:"+data);jQueryvaljQuery ojQuery$("#myELement")idmyElement,idmyElement$("div")选择所有的div元素,返回div元素数$(".myClass")myClasscss$("*")选择文档中的所有的元素,可以运用多种的进行联合选择:例$("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")选择所有的为空(也不包括文本节点)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实现功能-删除某个员工(再将这个员工的isDelete字段设置isDelete1date的返回值从值栈中获取的,它获取的值要有get和set方法,另外还有在Struts2中Struts2selectedHTMLo</span></div><pojQuerysetsessionflushDepartmentEmployeeEmployee练习10-显示部门信list1.jspsessionOpenSessionInViewFilterstruts2实现ajax的无刷新分页效果[难点大一点功能当用户点击分页超时,实现是一个ajax请求,到json数据,更新雇员信息代码list_ajax.jsp页面[ajax无刷新的技术list_ajax.jspajaxstruts.xml看到的效果是,正确的得到jsonidbean把返回的json数据,显示在页面,并可以分功能将请求到json格式的数据进行处理,显示在页面,并实现分页显示思路Jsongetget后面的方法作为键,将返回值最为值放到集合里面.如果没有在部门里面获取它的部门名称,json是获取不到,还有它的时间格式需要转换在页面的时候,因为有判断.所以在最后一页的时候不在跳转.json的没有进行最后一页的判断.所以当到最后一页的时候会不会判断,还会直接获取下一个页面.因为没有下一页所以会出现上面的.代码 接管//jsp页面换成jsonHTML文档中,.html()的元素,那么只有第一个匹配元素的HTML内容会被获取。pjQuery代码pjQuery代码: jQuery代码 returnpindex是:n注意:上面的span前的斜杠删除或者打一个空格,$()>是先创建一个jQuery对象,然后给这个对象绑//在获取部门信息,如果是从值栈中获取,他会通过级联关系查找部门信息.如果是在json数据中无法通过级联方式获取部门信息.employeeget方法获取,json数据会将数据封装成(名称/值).getXXX的名字,get方法的返回值$("p").append("<b>$jQuery“类”的一个别称,$()jQuery对象。所以,“$()jQuery的构造$("<div><p>$JQuery"选取"selectorJQueryfunction()html()HTML元素的内容(innerHTML)jQuery代码$("img").attr({src:"test.jpg",alt:"TestImage"HTML代码<p>o, </span><a </a></p>jQuery代码效果点击ajax的删除超后,可以删除这个员这个ajax功能花了很长的时间没有时间是因为添加么么么的单词拼写错误.这个功能的实现:能的绝显示添加员工页面(没有部门和角色功能:[暂时没有部门和角色功能:代码实现:[我们运行就得到了5的表,具体的关系如腾飞办公系统数据库.txt编写编写将部门信息放到request与中是为了在页面的select中自动回显,要明白select的属性作listKey和listlike:listkey队形与select中的value,listvalue对应于select中显示的选项.name属性Select并不会提交数据,必须包含在form里面一起提交.istKey是作为参数提交的Select显示集合里面的所有信息.listKey是它的id,listvalue是他的name.这些都是部门中的信息.name属性规定了这些信息要传递给谁.department.departmentId:在传递参数的时候将部门信息传递给Employee对应的部门里面,listKey的值.Struts2name jquery和weebox里面写的keyvalue需要将Employee类和Role类关联形成多对多思路:EmployeeEmployee.hbm.xml文件,Employee.java中增加一个属性roles效果当用户输入的员工信息都正确就加入到数据功能:思路Employee.java一般出现esltit数是tig,.,先创建一个eXX方法到这个方法里面,然后在里面完成转换后,将转换后的结果赋值给持久类中的属性.表单提交的数据是调用tXXX赋值的.SelectselectroleId的原因在下面的图里面Role在数据库中已经,在Employee中的Role集合中的对象值了它的id,根据关联关系,在Employeeroleid就获取他的完整记录ajax的验证是合法,到服务器还要验证,还需代码现在服务器使用struts2验证器(验证框架),到在验证错误信息的输出:首先配置验证器,然后通过进行语言转换然后通过input输出到指定的页面.取出的方法是:<s:propertyvalue=”[1].error[‘loginName’]”/>strut.xml修改员工的数据-能够回显员工的信[编写对员工信息修改-正式修思路问题?如何防止用户提交数据问题[验证框架],控制修改时,将没有提交的字段对应的属性置空讲解一下java如何操控excel文件[实用的技术javapoiexcelpoi文档,帮助手册(poiindex.html进入后步骤:打开index.html->HSSFandXSSFforExcel s->theHSSF+XSSFproject>QuickGuide快速案poi开发需要的jar包程序员韩顺平SSH1023 第一部分\课件\java操作excel文件技术-poi\required\下的jar包全部引入即可。ss.usermodel如果通过一个xls文件=》 ==》workbook=>现可以从服务器一个已经存在的文件功能:我们在服务的webcontent/file文件夹下放一个文件,比如test.xls文件,点击超,就可以将该文件下来思路:学习过struts2如何文件的方法,就是使用它即可streamresulttype编写了struts.xml实现以excel文件形式员工信息-从数据库中存在员工功能:先将excel文件和上传excel文件的页面显示出来,并且点击文件超后,可以或者excel文件思路代码配置器实现上传员工的信息,完成批量添加员功能用户上传填好的xls文件,校验数据数据有没有问上传文件->workbook->解析->row->employee[list<String[]>],然后判断错误的tree_date1.json,配置了一下 测试成功emp_uploadUI.jspstruts.xml做了fileuploadinterceptor器的配在资源文件我们加入了信jsp页面加入了一个显示错误的,返回第几行第几列错误.实现功能-抽取Base类,提高代码复用可以为各层抽取一个Base类,使用泛型的依赖注入,提高代码的复用性.DaoBaseDao<T>,ServcieBaseService<T>代码第一部分(Dao我们先引入一个功能强大的反射类[使用,是网路提供一个工具类]引入jar包:4.package4.package6.importimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassBaseDao<T>{privateSessionFactorypublicSessiongetSession(){ return //表示一个实体类的类型属privateClassentityClass;//编写一个构造器,对entityClass初始化工作,使用工具类publicBaseDao()entityClass= //编写一个通用方法,就是通过属性来获取对应的对//QBC方法publicTgetBy(StringproName,ObjectproVal){//使用//创建一个Criteria对Criteriacriteria=//创建一个条件,根据传入的属性,创建一个eq条件这里使//Criterion接口来接收对Criterioneq=Restrictions.eq(proName,//如果下面的方法查询不到,就会返回一个null,如果return(T) //获取所有部门的信publicList<T>Criteriacriteria=return publicMyPage<T>list(MyPage<T>myPage){//可以得到myPage对象的totalNum值inttotalNum=//获取到内容,单独的写一个方法来List<T>content=return //编写一个方法,获取到实体类的id的属性publicStringgetIdName(){ClassMetadataclassMetadata BaseDao,下面这样方法修改//使用QBC的方法来获取记录publicinttotalNum(){//1.创建一个Criteria接Criteriacriteria=//2.获取当前这个实体类的id(主键)的属性StringidProName=//3.创 接条Projectionprojection=//4.将这个连接条件加入到 //将myPage对象需要的当前的数据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;}}实现功能-完成查询分页功能[先可以弹出输入功能list1.jsplist_query.jsplist_query.jsp,功能:当用户输入查询条件后,点击提交,可以获取查询结果(这时还没有带入条件),再重新点击查询超还可以继续看到.思路emp_queryUI.jspqueryList思路(1)查询条件的字符串也拼接到emp_queryUI.jsp的超链strut2beanbean的属性就是和查询queryUIqueryFromBean,并将它压入到值栈顶,queryFromBean有提交的数据(从超过来的)运行成功完成分页查询功能(实现可以返回查询的结果功能:当用户输入具体的查询信息后,比如,就查询到这个人,比如输入查询"男",就返回所有男思路能够显示出角色和权限的管理页功能:当用户点击角色录入超时,就可以看到对应的角色和权限的页面--加入资源[可以哪些 直个模板即可.PS:拷贝时,因为模板之间有相互的关系,需要把其它的模板都拷贝过来jsp实现选择权限名下拉框可以切换子权限信功能:修改了一下能够将员工登录的功能使用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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论