前面我们刚刚学完文件上传,那么我们就接着来看和文件上传相对应的文件下载吧。对于文件上传而言,文件下载实现起来要简单的多。通常我们可以直接将一个超链接的地址指向我们想要给用户下载的资源即可。但是如果这些资源是浏览器能够解析的文件类型,比如html文件等,那么浏览器将不会提示用户下载这些文件了,而是会直接在浏览器中打开。这样做还有一个问题,那就是我们的资源文件的地址就直接暴露给用户了,它可以在其他的页面中被轻易的引用,这往往让我们觉得不太安全。那么就需要通过某种手段来告诉浏览器,让它提示用户下载我们的资源文件,并且将这些资源文件的真实地址隐藏起来。
.Struts2上传要用到commons-fileupload包和commons-io包,注意导入。介绍如下:1.单个文件上传;2.多个文件上传;3.上传文件大小和类型限制4.修改默认提示信息.
Struts2中的属性驱动和模型驱动 Struts2中的属性驱动和模型驱动2 Struts2中的异常处理机制 ognl表达式 Struts2中文件的上传和下载 拦截器 Struts2中的输入校验 Struts2中的类型转换 使用Annotation取代struts.xml配置 Struts2中文乱码处理 Struts2常用标签 UI标签的主题设置
Struts2学习目标:Struts2运用MVC设计模式,基于JSP/Servlet实现实际上是Struts1.x与WebWork2.2的整合(Apache+OpenSymphony)MVC设计模式概念MVC结构图MVC处理过程MVC的适用范围Strus2的体系架构与工作流程.
如果有对HTML比较熟悉的读者,肯定知道诸如select、chekbox这些HTML标签的使用方式。这些标签其实是可以归类为表单标签。在Struts2中除了这些基本的HTML标签的定义外,它还定义了许多特殊的但又基于前述这些HTML表单标签的个性化标签。这些表单标签各具特色,是很值得介绍的。在开发中负责view层功能开发的开发人员如果使用这些标签,就能发现Struts2提供了多么丰富的view层功能。
struts1.2和struts2区别Action类1.Struts1要求Action类要扩展自一个抽象基类。Struts1的一个共有的问题是面向抽象类编程而不是面向接口编程。2.Struts2的Action类实现了一个Action接口,连同其他接口一起来实现可选择和自定义的服务。Struts2提供一个名叫Action Support的基类来实现一般使用的接口。虽然,Action接口不是必须的。任何使用execute方法的POJO对象可以被当作Struts2的Action对象来使用。
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
核心提示:针对左边的登录功能,登录页面login.jsp;action为LoginAction;针对右边的注册功能,注册页面为regist.jsp;action为RegistAction.
虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常值得期待的框架。
struts模型驱动struts2应用的分层体系架构;action---service-daostruts2的模型驱动(ModelDriven)在提交表单的属性放在action中的是属性驱动。属性驱动与模型驱动的比较属性驱动灵活,准确;模型驱动不灵活,因为很多时候,页面所提交过来的参数并不属于模型中的属性,也就是说页面所提交过的参数与模型中的属性并不一致,这是很常见的情况。
Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。
学习的时候,总分不清楚在struts2中页面的传值和取值是怎么来完成的,所以从网上搜了很多资料,现在把这些资料总结写,留着以后参考。。看完资料后也大概明白了。
Struts 2框架有两个核心配置文件: struts.xml和struts.properties 其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。除此之外,Struts 2框架还包含一个struts.properties文件,该文件定义了Struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。
Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到用广泛的应用。作为最成功的Web框架,Struts自然拥有众多的优点: 1、MVC 2模型的使用 ;2、功能齐全的标志库(Tag Library) ;3、开放源代码 但是,所谓“金无赤金,人无完人”,Struts自身也有不少的缺点: 1、需要编写的代码过多,容易引起“类爆炸” ;2、单元测试困难 这些缺点随着Web的发展越来越明显。这就促生了Struts 2.0,它的诞生能很好的解决上述问题。 好啦,废话就不多说了,现在就让我们感受一下的Struts 2.0的魅力吧。
Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到用广泛的应用。作为最成功的Web框架,Struts自然拥有众多的优点: • MVC 2模型的使用 • 功能齐全的标志库(Tag Library) • 开放源代码 但是,所谓“金无赤金,人无完人”,Struts自身也有不少的缺点: • 需要编写的代码过多,容易引起“类爆炸” • 单元测试困难 这些缺点随着Web的发展越来越明显。这就促生了Struts 2.0,它的诞生能很好的解决上述问题。 好啦,废话就不多说了,现在就让我们感受一下的Struts 2.0的魅力吧。
Struts2自定义拦截器。Struts自定义拦截器步骤:步骤1:建立Struts工程,编写Action和相应的页面 步骤2:自定义一个实现Interceptor接口的类,在intercept方法中实现拦截器逻辑 步骤3:在struts.xml中为指定Action位置添加拦截器配置 步骤4:为避免覆盖掉默认的拦截器,添加配置defaultStack拦截器
GNL是Object Graphic Navigation Language(对象图导航语言)的缩写,OGNL是一个开源项目, OGNL是一种功能强大的EL(Expression Language,表达式语言),可以通过简单的表达式来访问Java对象中的属性。<br> OGNL先在WebWork项目中得到应用,也是Struts 2框架视图默认的表达式语言,可以说,OGNL表达式是Struts 2框架的特点之一。
struts2标签详解
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2只有很小的变化。
Struts 2是在WebWork和Struts 1的基础上发展起来的,因此掌握一定的WebWork和Struts 1框架的知识,将对于掌握Struts 2框架大有裨益。特别是WebWork方面的开发经验,绝大部分都可以适用于Struts 2应用的开发。本章将会简要介绍Struts 1和WebWork框架的使用。