Struts2和Hibernate框架定义开发步骤涉及技术注意事项Struts201工作评价此部分内容作为文字排版占位显示(建议使用主题字体)02自我评价此部分内容作为文字排版占位显示(建议使用主题字体)03工作体会此部分内容作为文字排版占位显示(建议使用主题字体)04工作规划此部分内容作为文字排版占位显示(建议使用主题字体)Struts2概述01Struts2是基于MVC设计模式的框架,是采用Servelet和jsp来实现的,是WebWork技术与struts技术的结合,具有性能高效,松耦合,低入侵等优点开发步骤02加载jar包文件加入核心拦截器绑定表单元素编写struts.xml文件自我评价加载jar包文件1.将struts2需要的的jar包文件,复制到lib目录下.2.将项目变成maven项目dependenciesdependencygroupIdorg.apache.struts/groupIdartifactIdstruts2-core/artifactIdversion2.5.12/version/dependency/dependencies加载核心过滤器1.在web.xml文件下配置org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter2.具体配置filterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mapping绑定表单元素一.在相应存在实体类的情况下,编写一个java类,可以用属性来绑定表单元素的值。在该中要写一个publicStringexecute()方法这个Java类可继承ActionSupport这个类也可以不继承一般是继承的二.绑定的几种方法1.普通属性——在action对象中封装相同的实体对象的属性,然后提供set方法2.用对象来接收——在action中封装尸体对象,但是表单元素name的属性值要写成:对象名.属性名3.用实现ModelDrivenT接口——在action中实例化一个实体类的对象,重写getModel方法,则表单元素保持和实体对象的属性一致即可1.在源文件目录下编写一个struts.xml的配置文件2.实例配置?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN=mynamespace=/extends=struts-defaultactionname=loginclass=com.action.LoginActionresultname=success/jsp/success.jsp/result/action/package/struts编写struts.xml文件3.配置解读package元素的配置:类似于Java中的包,主要放置一些项目相关的配置,已经配置好的包是可以被其他包继承,提高配置文件的重用性。包中的属性解释:name:声明包的名称(便于其他包继承的时候使用)extends:用于声明继承包(值是父包)nameespace:指定访问此包下的action需要访问的路径例如:packagename=“my”extends=“struts-default”nameespace=“/user”aherf=“user/userAction!add”添加用户/aabstract:将包声明为抽象类型4.Action的配置1.Action对象在Struts框架中是一个控制的角色,通过他来处理HTTP请求2.属性值介绍name:Action对象被请求的URL映射class:指定Action对象的类名method:指定请求Action对象时调用该对象的那个方法3.通配符简化配置例如:actionname=“*Action”class=“com.huwa.action.{1}Action”/action5.返回结果的配置resultname属性:指定返回结果的逻辑名称,与方法Action对象中的方法返回值一致type属性:指定返回结果类型涉及技术03动态Action标签库与Servelt的交互拦截器工作体会动态Action实现过程:通过在请求Action的URL地址后面加上!和请求字符串请求字符串对应为Action对象中的方法名1.解耦和的方式获取封装后对应的Map对象Maprequest=(Map)ActionContext.getContext().get(request);Mapsession=ActionContext.getContext().getSession();Mapapplication=ActionContext.getContext().getApplication();缺点:只有存取数据的功能2.非解耦和拿到实际的httpservlet的APIHttpServletRequestreq=ServletActionContext.getRequest();HttpSessionsess=req.getSession();ServletContextapp=ServletActionContext.getServletContext();3.IOC(反转控制)的方式获取MAP对象RequestAware,SessionAware,ApplicationAwareOGNL表达式1.数据标签property标签:获取数据并直接显示在页面a标签:构建一个超链接date标签:format,name,nice,var.2.控制标签if:包含:s:iftest=“表达式”,s:elseiftest=“表达式,s:elseiterator标签:迭代数据标签begin:迭代数组或集合的起始位置endstep:迭代步长value:指定迭代对象var:指定迭代元素别名3.表单标签submitselect等标签拦截器通过拦截器可以在Action执行前后处理一些相应操作拦截器配置interceptorsinterceptor-stackname=myStackinterceptor-refname=defaultStack/interceptor-refinterceptor-refname=myinterceptor/interceptor-ref/interceptor-stack/interceptorsdefault-interceptor-refname=myStack/default-interceptor-refinterceptor-refname=defaultStack/interceptor-ref注意事项04指定标签的引入3表单元素的绑定12Get(calsssd,Serialis)3延迟加载12)演示完毕谢谢欣赏