从实例看struts2运行原理1.1简单例子先做一个最简单的struts2的例子:在浏览器中请求一个action,然后返回一个字符串到jsp页面上显示出来。第一步:把struts2最低配置的jar包加入的项目中。
Struts2 运行流程如下: 1). 请求发送给 StrutsPrepareAndExecuteFilter 2). StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 Struts2 请求(即是否返回一个非空的 ActionMapping 对象) 3). 若 ActionMapper 认为该请求是一个 Struts2 请求,则 StrutsPrepareAndExecuteFilter 把请求的处理交给 ActionProxy
Struts2文件上传完美解决中文乱码问题工具/原料Struts2.0以上步骤/方法今天主要分享开源框架Struts2文件上传实例过程,并且笔者将带着大家解决出现的一系列乱码问题,本文章中的重要部分将用特殊颜色标识,斜体表示不确定内容。笔者建议读者先快速阅读一遍本文,下载应具备的工具,再动手操作。或许写一遍比看十遍的功效更为明显。
Struts2验证框架validation.xml常用的验证规则
知识点:配置fileUpload拦截器时,可为其指定2个参数:allowedTypes:该参数指定允许上传的文件类型,多文件之间用英文(,)隔开;maximumSize:该参数指定允许上传的文件大小,单位是字节;通过配置fileUpload拦截器,可以轻松的实现文件过滤,当文件过滤失败后,系统自动转入input逻辑视图。因此必须为该Action配置名为input的逻辑视图,除此之外,还必须显示的为该Action配置defaultStack的拦截器引用;
国际化也叫I18N,是Internationalization的简称。Struts2国际化是建立在Java国际化基础上,只是Struts2框架对Java国际化进行了进一步封装,从而简化了应用程序的国际化。
在如Web/客户端项目中,通常需要将数据转换为具有某种格式的字符串进行展示,因此上节我们学习的数据类型转换系统核心作用不是完成这个需求,因此Spring3引入了格式化转换器(Formatter SPI)和格式化服务API(Formatting Conversion Service)从而支持这种需求。在Spring中它和PropertyEditor功能类似
简介:Django是一个的,由写成。采用了的,于7月在下发布。开放源代码Web应用框架Python MVC软件设计模式2005年BSD许可证Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,和(Don't Repeat Yourself)。在Django中被普遍使用,甚至包括配置文件和数据模型。敏捷开发DRY法则Python核心Django框架的核心包括:一个面向对象的映射器,用作数据模型(以Python的形式定义)和关联性间的媒介;
什么是自定义Result所谓自定义Result,就是由我们自行开发的Result,而不是使用由Struts2预先定义好的Result。 在实际开发中,需要自定义Result的机率并不大,因为常见的各种页面展示技术,Struts2都已经预定义好相应的Result了,无需我们自行开发。如果我们要自定义Result,要么就是包装一种新的页面展示技术,要不干脆就是我们自行开发的页面展示技术,出现这些情况的可能性很低。
数据来源在helloworld示例里面,在运行Action的execute方法的时候,你会神奇般的发现,Action的属性是有值的,而这正是Action进行请求处理所需要的数据。那么,这些数据从何而来呢? 很明显,这些数据就是你在登录页面填写的数据,换句话说,这些数据来源于用户请求对象,也就是request对象。 可是,Struts2怎么知道,页面上的值如何和Action的属性进行对应呢?
Struts2之使用通配符5.4 使用通配符5.4.1 使用通配符前面学过,可以在定义action元素的name属性的时候使用通配符,使这个action元素不仅仅可以匹配一个URL,还可以匹配一类URL。而action的class属性和method属性能使用通配符的值。
在Action中execute方法的方法签名为public String execute() throws Exception,这样,Action可以抛出任何Exception,那么,Exception抛给谁呢?
在实际开发当中,常常需要在Action执行完毕后,而Result还没有开始执行的时候,做一些功能处理,比如异常处理,那么该怎么做呢? 这就需要使用PreResultListener了。看名字就知道,这是一个“Listener”,也就是一个监听器,用来执行事件监听的。那么它监听的到底是什么事件呢?
package 元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承
Java代码:因为用的时候数据是从数据库中取出来的,属性名称得改JS代码:jsp代码:这是一个二级联动,第一个select中数据时action中直接request的,用xml的也是一样的,这个不用管,主要的是根据第一个select中的value动态加载第二个select中的数据Struts.xml
Struts2自定义验证器10.5 自定义验证器10.5.1概述虽然Struts2的内建验证器可以完成绝大多数的验证需求,但是,有的时候还是需要个性化定制一些自定义的验证器。
验证器类型可以把验证器类型分为两种:字段验证器和动作验证器。其中,字段验证器就像前面演示的那样,只验证提交的表单内的单个字段;而动作验证器一般验证提交的表单内的多个字段的关系,比如,录入产品信息的时候,产品的进价不能高于售价。
签8.2 数据标签数据标签更关注如何从值栈上取值或者向值栈赋值。8.2.1property标签1:功能:用来输出OGNL表达式的值。2:属性 property标签的主要属性:value:用来获取值的OGNL表达式,如果value属性值没有指定,那么将会被设定为top,也就是返回位于值栈最顶端的对象。default:如果按照value属性指定的OGNL求值后返回的是空值.
概述Struts2的验证框架已经为我们建立了足够多的内建验证器,以满足不同的验证要求,接下来就来逐一学习这些内建的验证器。
struts2控制标签8.3 控制标签控制标签关注程序的运行流程,比如用if/else来进行分支控制,用iterator来进行循环控制。接下来就来学习Struts2的控制标签。